所以我有一个工作Nginx PHP-fpm安装. PHP-fpm状态报告页面被激活,我得到类似的东西(不关心设置,它是压力测试下的测试服务器):
pool: foobar process manager: dynamic start time: 31/Jan/2012:08:18:45 +0000 start since: 23592 accepted conn: 3354 listen queue: 0 max listen queue: 0 listen queue len: 0 idle processes: 0 active processes: 10 total processes: 10 max active processes: 10 max children reached: 25
我无法找到关于什么是侦听队列的任何迹象:,max listen queue:和listen queue len指示符.有谁能解释一下?
PHP-FPM连接是通过套接字(基于TCP或文件).因此,PHP-FPM必须在该套接字上“
listen”,然后“接受”连接.
由于存在可以接受连接的有限速率,因此在高负载下可能存在连接启动时间和接受时间之间的延迟.该州的连接是“排队”的.
listen queue len:这定义了将排队的最大连接数.达到此限制后,将拒绝或忽略后续连接.当接受连接时,队列长度将减少.
>此值由PHP-fpm per pool配置选项’listen.backlog’设置(默认值:-1 =无限制).
>由于正在使用套接字,因此该值也受系统值’net.core.somaxconn’的限制(在大多数Linux系统上默认值为128).
鉴于上述情况,有理由认为:
> listen queue:是尚未接受的已启动的连接数> max listen queue:是PHP-fpm运行时侦听队列达到的最大值.