【发布时间】:2016-10-12 19:07:52
【问题描述】:
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 个带有 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 被重载了?
【问题讨论】:
标签: php server fastcgi lighttpd mod-fastcgi