О параметре MPM Prefork MaxClient на сервере ОЗУ 256 МБ

У меня есть вопрос о конфигурации Apache MPM Prefork на серверах VPS.

Одна статья slicehost, они предлагают установить MaxClients на 40, если у меня есть 256 МБ ОЗУ на моем виртуальном сервере. ( http://articles.slicehost.com/2010/5/20/configuring-the-apache-mpm-on-debian)

Однако, поскольку каждый клиентский запрос использует около 50 МБ оперативной памяти, подкачка гарантируется, и мой VPS замедляется.

  PID   RSS COMMAND
10146 45944 /usr/sbin/apache2 -k start
10147 52528 /usr/sbin/apache2 -k start
10150 49680 /usr/sbin/apache2 -k start
10151 48756 /usr/sbin/apache2 -k start

Я обнаружил, что если я установлю MaxClients на 4 (!) Вместо этого, я не получу никакого обмена, и предполагается, что веб-сервер будет быстрее (или я ошибаюсь?)

Итак, я не понимаю, почему они предлагают 40 вместо.

Спасибо

2 ответа

Решение

Количество MaxClients, которое вы можете иметь, зависит исключительно от характера вашего сайта.

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

С другой стороны, если у вас есть какие-то проблемы с памятью (например, вы запускаете CMS, например, Drupal, или блог с WordPress), требования к памяти для каждого процесса сильно возрастают и, таким образом, снижается значение MaxClients, которое вы можете иметь. С этими тяжелыми приложениями PHP один процесс может легко потреблять от 10 до??? мегабайт оперативной памяти.

Они, вероятно, предполагают это, потому что 50 МБ памяти на запрос не является обычным делом.

Вы, вероятно, должны проверить, если вы можете избавиться от любых модулей, которые вы используете. Также проверьте, можете ли вы переместить любой mod_ (например, mod_php) в fcgid.

После этого у вас, вероятно, останутся только поточно-ориентированные модули, и вы сможете безопасно переключиться на рабочий MPM, что, скорее всего, решит все ваши проблемы с производительностью.

Другие вопросы по тегам