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

Проблема с ServerLimit и MaxClient

Пытался поднять MaxClients в apache для сайта с довольно высокой посещаемостью ..

Но я продолжал получать эту ошибку:

WARNING: MaxClients of 565 exceeds ServerLimit value of 256 servers,
 lowering MaxClients to 256.  To increase, please see the ServerLimit
 directive.
Syntax OK

Итак, после некоторого поиска я включил:

    StartServers        5
    MinSpareServers     15
    MaxSpareServers     30
    ServerLimit         565
    MaxClients          565
    MaxRequestsPerChild 2000

После плавного перезапуска предупреждение не появилось, и все выглядело нормально.

Однако после проверки моего apache error.log предупреждение все еще существует.

** [notice] Graceful restart requested, doing restart
WARNING: MaxClients of 565 exceeds ServerLimit value of 256 servers,
 lowering MaxClients to 256.  To increase, please see the ServerLimit
 directive.
** [warn] WARNING: Attempt to change ServerLimit ignored during restart

Повлияет ли ограничение ServerLimit? как сработал изящный перезапуск ... Кто-нибудь может пролить свет?

Ура!

Я думаю, вам нужно будет остановить и запустить httpd (чтобы останавливать и запускать «главный» процесс httpd, а не только дочерние процессы). Из записи документации Apache на ServerLimit:

«Любые попытки изменить эту директиву во время перезапуска будут проигнорированы, но MaxClients можно изменить во время перезапуска».

На самом деле вы должны убедиться в двух вещах, чтобы это подействовало:

  • перезапустите apache, а не просто перезагрузите
  • гарантировать, что ServerLimit приходит перед MaxClients в конфигурации Apache, иначе Apache прочитает MaxClients сначала и произвести ту же ошибку

Есть и другие очевидные предостережения, например, убедитесь, что он не в неправильном месте, внутри <If> блок, который не читается например.

apachectl graceful не сработает, тем более что apachectl restart тоже не пойдет.

Решение /etc/init.d/httpd restart или service httpd restart