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中只有一个条目,因此只会有一个Fastcgi后端。
- 由于PHP_FCGI_CHILDREN =3且max-procs=2,将有2 *(3 + 1)= 7个“/usr/local/bin/php”进程。
- 由于max-procs=2,在服务器状态中,将出现fastcgi.backend.0.0和fastcgi.backend.0.1的状态。
所以,将有1个带有2个进程的fastcgi后端。这些进程可以接受负载。
我不理解以下内容:
- PHP_FCGI_CHILDREN的重要性是什么?
- 请求由PHP_FCGI_CHILDREN还是proc处理?
- 哪个参数决定1个proc的最大负载?其默认值是多少?
- proc的最大负载是否与PHP_FCGI_MAX_REQUESTS有关?
- 如果PHP_FCGI_CHILDREN = 0会发生什么?提到了max-proc =观察者数量和max-proc* PHP_FCGI_CHILDREN =工作者数量。这是什么意思?
- 什么时候说一个proc已经超载?