php-fpm 状态页面:此报告中的“队列”项目是什么?

php-fpm 状态页面:此报告中的“队列”项目是什么?

因此,我已安装好 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

我找不到任何地方说明listen queue:max listen queue:listen queue len指标是什么。有人能解释一下吗?

答案1

PHP-FPM 连接通过套接字(TCP 或基于文件)进行。因此,PHP-FPM 必须 '' 在该套接字上,然后 '接受' 连接。

由于接受连接的速率是有限的,因此在高负载下,发起连接和接受连接之间可能会有延迟。处于该状态的连接处于“排队”状态。

监听队列长度:这定义了排队的最大连接数。一旦达到此限制,后续连接将被拒绝或忽略。随着连接的接受,队列长度将减少。

  • 该值由每个池的 php-fpm 配置选项“listen.backlog”设置(默认值:-1=unlimited)。
  • 由于正在使用套接字,该值也受到系统值“net.core.somaxconn”的限制(默认值:大多数 Linux 系统上的 128)。

鉴于上述情况,可以推断:

  • 监听队列:是已发起但尚未接受的连接数
  • 最大监听队列:是 php-fpm 运行时监听队列达到的最大值。

相关内容