У меня на сайте интенсивный трафик, много динамического контента, в основном пользовательского.
Сервер является выделенным и имеет в общей сложности 4 процессора Intel Xeon® X3210 с тактовой частотой 2,13 ГГц. Мне нужно знать оптимальные значения для директив apache ServerLimit и MaxClients, учитывая, что сервер имеет 4 ГБ ОЗУ, а база данных MySQL работает на отдельном сервере. Панель DirectAdmin с CentOS.
Ниже приведены мои текущие директивы, но в часы пик с более чем 5 тыс. Пользователей замечено важное отставание - и это не полная ошибка MySQL, потому что кажется, что страницы генерируются быстро (я реализовал счетчик времени генерации страниц), но есть длинный задержка соединения до тех пор, пока страница не начнет отвечать и не будет отправлена в браузер.
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
Следует отметить, что при мониторинге сервера с помощью команды top загрузка ЦП никогда не превышает 20–30% в час пик. В то время сервер MySQL также использовал от 30 до 50%, и я постоянно работаю над исправлением медленных запросов, но это другая проблема. Я знаю, что это не узкое место БД, потому что статические страницы также загружаются в часы пик.
Любые советы по оптимизации этих значений будут с благодарностью, спасибо.