Оптимизируем Apache. Отключаем модули.

Категория: Программим

http://www.aleksei.su/upload_files/images/_thb_29_79_02120b0a005ef86e071c6d8202a36cbf.jpg


Дело было так. На моем VPS стояла панель Plesk 8.5. Долго так стояла, несколько лет. И вот решил я обновить ее, но грит хостер фигу тебе, не получиться. Но можно взять новый VPS с теми же параметрами, и потом все туда перенести. Ну так и сделали.
И пошли ошибки, пошли пошли пошли. Все перечислять не буду, основные проблемы возникли из-за острой нехватки памяти. Вообще на VPS 512 метров. Хостер грешил на мои скрипты, которые генерировали много ошибок, всякие notice, warning. Я ему не очень верил, ибо точно тоже раньше работало не убивая всю память.




Зашел я тут както на сервер, выполнил команду top, и о Боже, что я вижу. Каждый процесс httpd (что собственно и есть apache) жрет по 80-90 метров. Не хило так да. 6 процессов и вот тебе вся память убита. расход памяти был 640 метров. Что явно выше позволенных мне 512, собственно от чего и начинало все глючить.
Занялся вопросом, как же это дело можно оптимизировать все. Во первых стоило посмотреть какие модули apache вообще грузит.
Самое просто это phpinfo(). Я насчитал аж 62 модуля. Не думаю, что они все мне нужны, а ведь каждый из них добавляет свой вклад в те самые 80 метров.
В итоге я отключил:
Цитата:

#mod_actions
#mod_auth_digest
#mod_authn_alias
#mod_authn_anon
#mod_authn_dbm
#mod_authz_dbm
#mod_authz_owner
#mod_autoindex
#mod_cgi
#mod_deflate
#mod_env
#mod_ext_filter
#mod_include
#mod_logio
#mod_setenvif
#mod_usertrack
#mod_version
#mod_perl
#mod_python
#mod_ssl


Ну как сказать отключил, отправил запрос хостеру, чтобы он их вырубил, и пошел спать, надеясь на чудо.
Утром чудо произошло. Просыпаюсь, ни один сайт не работает, везде error 500. Ну пипец, приплыли. Быстрый анализ логов показал, что ошибка с actions идет. Тут считаю хостер скосячил, мог бы и проверить потом как все работает или предупредить, что mod_action жизненно необходим.

Тут надо было действовать быстро, поэтому включал я его уже самостоятельно. Собственно настройки apache хранятся в файле /etc/httpd/conf/httpd.conf. Перед тем как что-то менять сохраните себе его копию, мало ли.

Снял комментарий с #mod_actions, перезапустил apache командой httpd -k restart. набираю команду top и...... О чудо!!!!

Во первых все работает. Расход памяти на один процесс apache 40 метров. В 2!!! раза меньше.

Кстати предварительно я также попросил хостера отключить spamassasin и вообще сервер почты вырубить нафиг. Все равно я пользуюсь сторонним почтовыми сервисами почты от Google и Яндекс.

Итог: общий расход памяти 200 метров, против 600 . Результат налицо!



Комментарии

mod_deflate хороший модуль, полезный Почитайте доки, авось пригодится :)

А вообще если с памятью туго - нужно переходить на связку Nginx php fpm

Имя (Псевдоним):

Секретный код:
сменить цифры
Секретный код Повторите код: