WCF отключение UseNagleAlgorithm при подключении к SQL Azure

Иметь кучу служб WCF REST, размещенных в Azure, которые обращаются к базе данных SQL Azure. Я вижу, что ServicePointManager.UseNagleAlgorithm имеет значение true. Я понимаю, что установка значения false ускорит вызовы (вставка записей ‹1460 байт) в хранилище таблиц - следующее ссылка говорит об этом.

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


person user529265    schedule 21.01.2012    source источник


Ответы (1)


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

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

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

person David Makogon    schedule 21.01.2012
comment
Спасибо за разъяснение - веб-службы используют EF для записи в базу данных SQL Azure. Так что отключение Nagle поможет в лучшем случае - скажем, вставка записи с двумя целыми числами - и не будет иметь никакого значения в худшем случае (?) - person user529265; 22.01.2012