HTTP Keep-Alive для вызовов <1 КБ каждую 1 секунду - PullRequest
3 голосов
/ 16 июня 2011

Я оптимизирую настройки своего веб-сервера для обработки большого количества одновременно работающих пользователей, и одна из проблем, с которыми я сталкиваюсь, заключается в принятии решения о том, следует ли отключить HTTP Keep-Alive.

Я использую CDN для всех изображений на сайте, поэтому при запросе моей HTML-страницы я загружаю приблизительно 5 файлов (js, css и т. Д.) При первой загрузке ... и затем только HTML при каждой последующей загрузке.

Кроме того, единственное, что у меня есть, это HTTP-обновление POST каждую секунду (результирующий JSON обычно меньше 1 КБ).

Итак, с этими ограничениями - думаете ли вы, что отключение HTTP Keep-Alive на сервере было бы хорошей идеей? Это улучшит число одновременных пользователей, с которыми может справиться сервер?

(Кстати, я уменьшил KeepAliveTimeout / ConnectionTimeout до 15 секунд в настройках IIS 7.5)

1 Ответ

1 голос
/ 16 июня 2011

Из того, что вы описываете, вы совершаете вызов на клиента в секунду.Таким образом, все сводится к тому, сколько нужно, чтобы удовлетворить запрос.Если, скажем, для обработки запроса требуется 100 мс.Так что это означает, что Http Keep-Alive в течение 15 секунд будет иметь 15 вызовов без повторного установления соединения, но соединение действительно было активным (или использовалось) только в течение 1,5 секунд - в остальное время вы фактически блокируете некоторыеклиент / соединение (при условии, что есть какой-либо клиент).Без поддержки, вы можете разместить в 8-9 раз больше одновременно работающих клиентов.

Однако, несмотря на все сказанное, вы должны посмотреть на фактические параметры, чтобы принять решение.Сколько параллельных клиентов у вас, вероятно, будет, каково время отклика и т. Д. Лучший способ - это провести симуляцию / нагрузочное тестирование для измерения производительности.Потому что, если ваш сервер будет обрабатывать ожидаемую максимальную параллельную нагрузку пользователя с помощью keep-alive, вы вполне можете сохранить поддержку.

Кстати, также смотрите этот связанный вопрос на SO: http keep-aliveв современную эпоху

...