在 Ubuntu 系统下,监控 php-fpm 的运行状态并不复杂,关键在于选对工具、看准数据。下面直接分享三个常用且有效的方法,覆盖从服务级监控到进程级资源监视的全流程,帮助你快速掌握 PHP-FPM 的健康状况。

方法一:使用 systemctl 管理服务状态
这是最基础也最直接的检查方式。如果你只需要确认 php-fpm 是否在运行、有没有意外退出,一条命令即可搞定:
sudo systemctl status php-fpm
输出结果会明确显示当前状态是 active 还是 failed,并列出近期的启动记录。发现服务挂了?顺手重新启动:
sudo systemctl start php-fpm
停止服务的命令同样简单:
sudo systemctl stop php-fpm
需要更详细的日志?利用 journalctl 拉取服务的全部输出:
sudo journalctl -u php-fpm
这种方式特别适合日常巡检,无需安装任何额外工具,快速定位问题。
方法二:top/htop 进程级实时监控
服务状态显示正常,但感觉 PHP 响应变慢?这时候就需要挨个查看每个 php-fpm 进程到底占用了多少 CPU 和内存。先用 ps 找出主进程的 PID:
ps aux | grep php-fpm
然后锁定这个 PID,用 top 或 htop 按 PID 排序进行实时监控:
top -p [php-fpm-master-pid]
更习惯图形化操作的话,使用 htop:
htop -p [php-fpm-master-pid]
别忘了把 [php-fpm-master-pid] 替换成实际找到的数字。这种方法能直观看到每个工作进程的资源消耗,比如哪个 worker 突然飙到 100% CPU,一眼就能揪出来,方便快速定位性能热点。
方法三:利用 php-fpm 内置状态页
这是最专业、信息量最全面的监控方式,前提是需要在配置中开启状态页。找到 php-fpm 的 pool 配置文件(通常位于 /etc/php/{version}/fpm/pool.d/www.conf),确保 pm.status_path 未被注释,并设置一个路径,例如:
pm.status_path = /php-fpm-status
然后配置 Web 服务器(Nginx 或 Apache)允许访问这个路径。接着在浏览器中访问:
https://your-domain.com/php-fpm-status
页面会返回纯文本或 JSON 格式的状态报告,包含当前活跃进程数、空闲进程数、队列等待数、连接数等关键指标。这是生产环境中排查 PHP-FPM 性能瓶颈的利器,能帮助你精准判断是否需要调整进程池参数。
以上三种方法覆盖了日常运维的主流场景。从基础服务检查,到进程级资源监控,再到全量状态统计,按需选用即可高效管理 php-fpm 的稳定运行。
