В конфигурации fastcgi есть 4 поля: max-procs, max-load-per-proc, PHP_FCGI_CHILDREN,PHP_FCGI_MAX_REQUESTS:
fastcgi.server = ( ".php" =>
(( "socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php",
"max-procs" => "2",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "3",
"PHP_FCGI_MAX_REQUESTS" => "10000" )
))
)
- Поскольку в fastcgi.server есть только 1 запись, будет 1 бэкэнд Fastcgi.
- Поскольку PHP_FCGI_CHILDREN = 3 и max-procs = 2, количество процессов «/usr/local/bin/php» будет равно 2*(3+1)=7.
- Поскольку max-procs=2, в статусе сервера будет статус fastcgi.backend.0.0 и fastcgi.backend.0.1.
Таким образом, будет 1 бэкэнд fastcgi с 2 процессами. Эти процессы принимают нагрузку.
Я не понимаю следующее:
- Каково значение PHP_FCGI_CHILDREN?
- Обрабатывается ли запрос PHP_FCGI_CHILDREN или процедурой?
- Какой параметр определяет максимальную загрузку 1 процесса? И какое у него значение по умолчанию?
- Имеет ли максимальная нагрузка процедуры какое-либо отношение к PHP_FCGI_MAX_REQUESTS?
- Что произойдет, если PHP_FCGI_CHILDREN=0? Было упомянуто, что max-proc = количество наблюдателей и max-proc*PHP_FCGI_CHILDREN= количество рабочих. Что это значит?
- Когда говорят, что процесс перегружен?