Настройка (оптимизация) apache под linux

И снова возникло желание поделиться личным опытом! По воле судьбы довелось мне администрировать выделенный сервер. Со временем стало резко не хватать оперативной памяти на сервере. Естественно это сказалось на работе  web-сервера apache, что само собой вызвало перебои в работе сайта.

Чтобы выяснить какой именно процесс “съедает” всю память, провел нехитрое расследование с помощью команды top (в *nix подобных системах эта команда выводит список выполняемых процессов).

Виной всему оказался httpd (он же apache), который создавал множество дочерних процессов. Перезапустив его, удалось временно (примерно на сутки) решить проблему. Далее, полистав немного интернет, решил оптимизировать настройки apache.

Для начала законнектимся по ssh. Теперь отредактируем файл настроек apaсhe: /etc/httpd/conf/httpd.conf

MaxKeepAliveRequest 300 – Рекомендуется увеличить этот параметр.
KeepAliveTimeout 5 – этот параметр указывает через сколько секунд серверу завершать соединение с клиентом.
MinSpareServers 5 – этот параметр указывает сколько серверу следует подготавливать дочерние процессы на сервере для обработки параллельных запросов.  Уменьшение этого параметра ведет к замедлению работы сайта, но высвобождает ресурсы сервера и наоборот.
MaxSpareServers 15 – максимальное количество дочерних процессов, которое разрешается создать серверу.
StartServers 5 – количество серверов, которые запускает apache (максимальное значение этого параметра 64).
MaxClients 100 – максимальное количество одновременно подключённых пользователей.
MaxRequestsPerChild 100000 -максимальное количество запросов к одному процессу.
HostnameLookups off – определение хостов посетителей для ускорения работы сервера. (On | Off)

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

Далее можно отключить неиспользуемые модули web-сервера, просто закомментировав строку, где они подключаются.

Например:

#LoadModule proxy_module modules/mod_proxy.so

Затем сохраняем файл и перезапускаем apache в две команды:

# /etc/init.d/httpd stop 

# /etc/init.d/httpd start

Или в одну:

# /etc/init.d/httpd restart

Leave a Reply




*