Вторая заметка из цикла оптимизации веб-сервера на базе apache+nginx+mysql+php.
Уточню, что все нижеуказанные параметры, подходящие для моего сервера, могут не подойти для использования другого, так как они являются сугубо индивидуальными и подобраны в соответствии с характеристиками сервера.
На сервере установлен восьмиядерный процессор Xeon и 24Гб оперативной памяти, на котором работает более 200 сайтов, в основном на Joomla и WordPress.
Расчёт значения MaxClients.
Оптимизация Apache на Debian: aposnov.ru/оптимизация-apach
В интернете полно статей на эту тему, поэтому находил информацию с разных источников и соединял это воедино.
Уточню, что все нижеуказанные параметры, подходящие для моего сервера, могут не подойти для использования другого, так как они являются сугубо индивидуальными и подобраны в соответствии с характеристиками сервера.
На сервере установлен восьмиядерный процессор Xeon и 24Гб оперативной памяти, на котором работает более 200 сайтов, в основном на Joomla и WordPress.
Проверим, какой MPM (Multi-processing module) использует Apache:
# apache2 -V | grep "Server MPM"
Server MPM: Prefork
Перед изменением конфигов, нужно сделать резервную копию:
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
Скроем версию apache2 для безопасности (это не относится к оптимизации):
# vim /etc/apache2/apache2.conf
ServerSignature Off
ServerTokens Prod
Настраивам apache2 для использования MPM Prefork:
# vim /etc/apache2/apache2.conf
<IfModule mpm_prefork_module>
# Число процессов, запускаемых вначале
StartServers 5
# Мин. и макс. число ожидаемых процессов
MinSpareServers 5
MaxSpareServers 10
# Максимальное число параллельных запросов
MaxClients 150
# Число запросов, обрабатываемых за дочерний процесс/поток
MaxRequestsPerChild 3000
</IfModule>
# Несколько запросов в одном TCP-подключении
KeepAlive On
# Время до нового запроса
KeepAliveTimeout 5
# Отключение reverse DNS запросов
HostnameLookups Off
Отключаем ненужные модули status (статистика apache2), deflate (сжатие, так как помимо apache2, на сервере ещё и nginx, то необходимости в сжатии нет):
# a2dismod status
# a2dismod deflate
# apachectl restart
Расчёт значения MaxClients.
Обычно для динамики процесс занимает примерно 16-32 Мб памяти.
Предположим, что для апача нам не жалко 5 Гб памяти.
5 Гб / ~30 Мб ~= 150 MaxClients
Примерный размер процесса apache2, можно проверить так (смотреть в колонку RSS):
# ps -ylC apache2 --sort:rss
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
...
S 33 6521 2843 0 80 0 17208 157411 - ? 00:00:00 apache2
S 33 5385 2843 0 80 0 17212 157409 - ? 00:00:00 apache2
S 33 6132 2843 0 80 0 17216 157411 - ? 00:00:00 apache2
S 33 4684 2843 0 80 0 17244 157413 - ? 00:00:00 apache2
S 0 2843 1 0 80 0 29508 157281 - ? 00:00:00 apache2
Полезные сслыки:
Оптимизация производительности Apache: opennet.ru/base/net/apache_tune.txt.html
Полезные сслыки:
Оптимизация производительности Apache: opennet.ru/base/net/apache_tune.txt.html
Настройка систем LAMP, Часть 2: Оптимизация Apache и PHP: ibm.com/developerworks/ru/library/l-tune-lamp-2/l-tune-lamp-2.html
Тюнинг сервера Apache: ruhighload.com/index.php/2009/05/27/оптимизация-производительности-apache/
Комментариев нет:
Отправить комментарий