WCF отключает UseNagleAlgorithm при подключении к SQL Azure - PullRequest
2 голосов
/ 21 января 2012

В Azure есть несколько служб WCF REST, которые обращаются к базе данных SQL Azure. Я вижу, что ServicePointManager.UseNagleAlgorithm имеет значение true. Я понимаю, что установка этого значения в false ускорит вызовы (вставки записей <1460 байт) в хранилище таблиц - об этом говорит следующая <a href="http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/d84ba34b-b0e0-4961-a167-bbe7618beb83/" rel="nofollow"> ссылка .

Мой вопрос - не ускорит ли отключение алгоритма Nagle мои звонки в SQL Azure?

1 Ответ

3 голосов
/ 21 января 2012

Алгоритм Nagle предназначен для буферизации данных уровня tcp в меньшее количество пакетов и не привязан к размеру записи.Вы можете записывать строки в Table Storage, скажем, 1300 байт данных, но после включения информации заголовка tcp, сериализации контента и т. Д. Передаваемые данные могут быть больше, чем порог в 1460 байт.

В любом случае: в результате вы можете увидеть задержки записи до 500 мс, когда алгоритм включен, поскольку данные буферизуются, что приводит к меньшему количеству tcp-пакетов по проводам.

Возможно, что отключение алгоритма Нэгламожет помочь в вашем доступе к SQL Azure, но вам, вероятно, потребуется выполнить некоторые тесты, чтобы увидеть, не влияет ли ваша пропускная способность в зависимости от типа операций чтения / записи, которые вы делаете.Вполне возможно, что вызовы SQL Azure с необходимым текстом команды SQL приводят к получению пакетов достаточно большого размера, поэтому отключение nagle не будет иметь значения.

...