PHP探针如何查看并发连接数_PHP探针查看并发连接数法【指引】

3次阅读

PHP 探针不提供并发连接数监控,需通过 Apache 的 mod_status、Nginx 的 stub_status、ss/netstat 命令或 PHP-FPM 状态页分别查看 Web 服务器、系统网络层及 PHP 进程池的并发数据。

PHP 探针如何查看并发连接数_PHP 探针查看并发连接数法【指引】

PHP 探针本身不提供并发连接数监控

PHP 探针(如 phpinfo.php 或各类开源探针脚本)主要展示 PHP 运行环境信息:版本、扩展、php.ini 配置、服务器变量等,** 不采集也不显示当前并发连接数 **。它不是监控 工具,没有实时连接状态感知能力。

想查并发连接数,必须绕过探针,直接看 Web 服务器或 操作系统 层面的数据。

Apache 下查看当前并发请求数(mod_status

启用 Apache 的 mod_status 模块后,可通过内置状态页看到活跃连接数。需确保:

  • LoadModule status_module modules/mod_status.so 已启用
  • ExtendedStatus On 在配置中开启(否则只显示简略统计)
  • 有对应访问控制(如仅限本地)

访问 http://your-site/server-status?auto(加 ?auto 返回纯文本),关键字段包括:

立即学习PHP 免费学习笔记(深入)”;

BusyWorkers: 12 IdleWorkers: 23 Total Accesses: 45678 Total kBytes: 123456

BusyWorkers 即当前正在处理请求的子进程 / 线程数,可近似视为并发请求数(注意:非 TCP 连接总数,而是 Apache 正在服务的请求量)。

Nginx 下通过 stub_status 查活跃连接

Nginx 需编译时启用 --with-http_stub_status_module(主流发行版通常已包含),并在 server 块中配置:

location /nginx-status {stub_status on;     access_log off;     allow 127.0.0.1;     deny all;}

访问 http://localhost/nginx-status,返回类似:

Active connections: 32 server accepts handled requests  45678 45678 91234 Reading: 0 Writing: 2 Waiting: 30

Active connections 是 Nginx 当前持有的所有 TCP 连接数(含 keep-alive 空闲连接);Writing 表示正向客户端发送响应的连接数,更接近“真正并发处理中”的请求。

Linux 系统级:用 ssnetstat 统计 PHP-FPM 相关连接

如果 PHP 以 FPM 方式运行,真正的并发瓶颈常在 php-fpm 进程池。此时应查监听 端口(如 127.0.0.1:9000 或 socket 文件)的 ESTABLISHED 连接数:

  • 查 TCP 连接:ss -tn state established '(dport = :9000)' | wc -l
  • 查 Unix socket 连接(较难直接统计,需结合 lsof -U | grep php-fpm 观察 fd 数量)
  • 查 FPM 自身状态页(需开启 pm.status_path = /status 并配置 location,返回中 active processes 表示当前忙碌 worker 数)

注意:ssnetstat 更轻量、更准确,尤其在高并发下;ESTABLISHED 连接数 ≠ 并发请求数,因为一个连接可能承载多个 FastCGI 请求(取决于 keepalive 设置)。

真正要盯住的,并发指标分散在 Web 服务器、PHP-FPM 和内核网络 三层,PHP 探针连其中任何一层的实时连接数据都拿不到。别在探针页面里找“并发数”入口了——那地方根本没这个字段。

text=ZqhQzanResources