在 Ubuntu 上监控 php-fpm 可以从 进程状态、性能、日志、系统资源 等多个层面来做。下面按常用程度给你一个完整方案。
systemctl status php-fpm
# 或(Ubuntu 常见)
systemctl status php8.1-fpm
启动 / 重启 / 停止:
sudo systemctl start php8.1-fpm
sudo systemctl restart php8.1-fpm
sudo systemctl stop php8.1-fpm
这是最常用、最专业的监控方式。
编辑 php-fpm pool 配置:
sudo vim /etc/php/8.1/fpm/pool.d/www.conf
取消或添加:
pm.status_path = /status
location = /status {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
重载:
sudo systemctl reload nginx
sudo systemctl reload php8.1-fpm
curl http://127.0.0.1/status
输出示例:
pool: www
process manager: dynamic
start time: 01/Jan/2026:10:00:00 +0800
start since: 3600
accepted conn: 12345
listen queue: 0
active processes: 5
idle processes: 10
total processes: 15
✅ 关键指标解释
| 指标 | 含义 |
|---|---|
| active processes | 正在处理请求的进程 |
| idle processes | 空闲进程 |
| listen queue | 等待队列(高说明不够用) |
| accepted conn | 总请求数 |
ps aux | grep php-fpm
watch -n 1 "ps aux | grep php-fpm | wc -l"
ss -x | grep php
top
# 或
htop
查找 php-fpm
ps -eo pid,user,%cpu,%mem,cmd --sort=-%mem | grep php-fpm
tail -f /var/log/php8.1-fpm.log
在 www.conf 开启:
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/slow.log
查看:
tail -f /var/log/php-fpm/slow.log
适合大规模监控
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
自动监控:
企业级方案
| 指标 | 建议阈值 |
|---|---|
| listen queue | > 0 |
| active processes | 接近 pm.max_children |
| CPU | > 80% |
| 内存 | 接近服务器上限 |
| slow log | 非空 |
systemctl status php8.1-fpm
curl http://127.0.0.1/status
tail -f /var/log/php8.1-fpm.log
ps aux | grep php-fpm
如果你愿意,我可以:
只要告诉我你的 Ubuntu 版本 + php 版本 + 使用 Nginx 还是 Apache 即可。