Здравствуйте.
Только что переехали на новый сервер: 12 ядер, ssd диск, 64Gb оперативки.
На сервере стоит Apache worker, mod _fcgi, php-fpm, nginx.
На сервере высоко посещаемый сайт и множество локальных приложений обращаются к php скрипту на сервере.
Сразу появилась проблема с ответами сервера. Некоторое время ответ от php скрипта 0,2-0,3 секунды, затем оно плавно увеличивается до 2х, 3х, 10и секунд, затем сервер не отвечает, затем все становиться нормально. Вот скриншот нескольких подключений каждые 30 секунд:
content.screencast.com/users/Bred_s/folders/Jing/m...
Эти проблемы сопровождаются ошибкой mod_fcgid: can't apply process slot for /srv/cgi/php-fcgi-starter
Настройки такие:
Апач:
<IfModule mpm_worker_module>
ServerLimit 50
MaxClients 2496
MinSpareThreads 128
MaxSpareThreads 350
ThreadsPerChild 64
MaxRequestsPerChild 200
</IfModule>
в VirtualHost
<IfModule mod_fcgid.c>
FcgidBusyTimeout 3600
MaxRequestsPerProcess 2000
DefaultMaxClassProcessCount 120
MaxRequestsPerProcess 200
IdleTimeout 60
IPCCommTimeout 60
IPCConnectTimeout 30
MaxRequestLen 10240000
<Directory /srv/www/>
Options -Indexes FollowSymLinks +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /srv/cgi/php-fcgi-starter .php #<--------------------------------------
Order allow,deny
allow from all
</Directory>
</IfModule>
В файле php-fcgi-starter такие настройки:
#!/bin/sh
#PHPRC="/usr/local/etc"
#export PHPRC
#PHP_FCGI_CHILDREN=16
#export PHP_FCGI_CHILDREN
#PHP_FCGI_MAX_REQUESTS=18000
#export PHP_FCGI_MAX_REQUESTS
exec /usr/lib/cgi-bin/php5
В гугле, из информации по этой ошибке нашел рекомендации, задать настройке FcgidMaxProcesses или MaxProcesses (везде по разному пишут) большое значение. Однако если выставляю эту настройку в VirtualHost в секцию IfModule mod_fcgid.c то апач ругается что синтаксическая ошибка в конфиге.
Подскажите пожалуйста оптимальный вариант настройки, даже ресурсоемкого, это не проблема, для большого количества подключений. Или просто вариант избавления от данной проблемы.