Назад | Перейти на главную страницу

Увеличьте количество одновременных подключений с помощью apache2

Как увеличить количество одновременных подключений в apache2? Я использую приложение javascript, которое регулярно опрашивает сервер, и я пытаюсь предотвратить блокировку клиентов. Я знаю, что мне следует переключиться на неблокирующий веб-сервер, но до этого момента, есть ли какой-либо способ взлома, который я могу сделать в apache, чтобы оптимизировать это? Спасибо.

Выполните поиск на этом сайте по запросу "MaxClients'который должен предоставить довольно много информации, чтобы вы начали.

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

  • StartServers
  • MaxSpareServers
  • MinSpareServers
  • MaxClients
  • ServerLimit
  • MaxRequestsPerChild
  • KeepAlive
  • KeepAliveTimeout
  • MaxKeepAliveRequests:

На уровне Apache вы захотите максимизировать MaxClients значение, не исчерпывая ОЗУ. Вы можете, например, установить MaxClients на 1000, и он будет работать нормально, пока у вас не будет так много одновременных подключений, что у вас закончится оперативная память и вы начнете использовать своп, после чего производительность вашего сервера резко упадет.

В качестве приблизительного руководства вы можете запустить top и посмотрите на все httpd записи, учитывающие разницу между RES и SHR столбцы. Это значение является приблизительной памятью, используемой клиентскими процессами Apache. Разделите общее количество памяти, которое вы хотите использовать Apache, на это число, чтобы получить начальные MaxClients. Например, для среднего размера процесса Apache 20 МБ при использовании 3 ГБ получается 3000/20 = 150 MaxClients.

Если вы хотите еще больше увеличить MaxClients, вы можете попытаться уменьшить размер процессов Apache, не загружая какой-либо модуль, который вам не нужен.

Как вы упомянули, вы можете рассмотреть альтернативный веб-сервер или, возможно, два веб-сервера Apache, чтобы увеличить количество возможных одновременных подключений. Когда Apache настроен на серверные динамические страницы (PHP и т. Д.), Он относительно требователен к памяти, что устанавливает относительно низкий предел количества соединений, которые вы можете иметь до того, как закончится ОЗУ. Обычный выбор в этом случае - использовать более легкий веб-сервер (Lighttpd, Nginx и т. Д.) Для обслуживания всего статического контента и оставить Apache для обслуживания только динамических страниц.