На что следует обратить внимание:
httpd
процесс (около 300 МБ из ваших выходных данных), и объем памяти вашей машины. Было бы неплохо чтобы тщательно изучить ваш httpd.conf
и удалить все ненужные модули, чтобы сократить объем памяти. Как только вы это сделаете, вы можете начать постепенно увеличивать MaxClients
и ServerLimit
.
Вы захотите увеличить StartServers
, MinSpareServers
и MaxSpareServers
тоже,
Если возможно, попробуйте переключиться на другой веб-сервер, например Nginx или Lighttpd. Apache великолепен, но обычно он плохо справляется с загруженными веб-сайтами.
Если вы не можете, нет проблем. Вот несколько советов, которые могут вам помочь:
1. Отключить журналы
Если ваше приложение не зависит от файлов журналов и вы используете Аналитику или другую службу для статистики, вы можете отключить журналы. Вы увидите прерывание ввода-вывода, потому что apache не должен записывать каждый запрос на диск.
2. Вы используете PHP? Кэш опкодов является обязательным!
Я предпочитаю APC, потому что он прост в установке, стабилен и скоро станет частью PHP. Чтобы установить его, просто запустите:
pecl install apc
Они добавьте следующую строку в ваш php.ini:
extension="apc.so"
Перезагрузите ваш веб-сервер и посмотрите, как падает нагрузка.
3. Переход на другой MPM
Переход на рабочий или событийный MPM может помочь в некоторых случаях. Это действительно зависит от типа файлов, которые вы обслуживаете. Я видел случаи, когда после этого нагрузка падала, а другие выполнялись как prefork или worker, не имело особого значения.
Примечание: вы можете сломать PHP, если измените его на worker, и вы запускаете его как Модуль DSO. Сначала проверьте это.