宝塔监控需手动开启且等待1–2分钟出图;负载≠cpu使用率,高负载需用top -c定位进程;网站资源归属须结合配置路径与日志交叉验证;面板日报仅反映峰值快照,精确定位需结合监控时间范围与终端日志。

监控没开启,看啥都是0——先确认基础状态
宝塔的监控数据不是默认跑起来的,不点那个“开启监控”按钮,所有图表都显示为空白或0%,这不是故障,是压根没采集。很多人查了半天CPU飙升,结果发现监控根本关着。
- 登录面板后直奔左侧【监控】菜单,右上角必须看到绿色“已开启”状态,否则后续所有分析都无意义
- 开启后需等待1–2分钟才开始出图,别刚点完就刷新十次
- 首页“状态概览”里的负载百分比是综合值(CPU+内存+IO+网络),它不等于CPU使用率,高负载未必是CPU问题,也可能是磁盘卡死或PHP进程夯住
top -c 是定位真凶的最快路径
面板监控只告诉你“CPU高了”,但不知道谁干的;top -c 能直接列出完整命令行,一眼看出是不是某个网站的 php-cgi 或 python3 进程在狂吃资源。
- 进宝塔【终端】,输入
top -c回车,再按Shift + P按CPU倒序 - 重点盯 COMMAND 列:含
/www/wwwroot/xxx.com、php-fpm: pool www、gunicorn: xxx.wsgi的基本就是罪魁祸首 - 如果看到大量
sh -c /www/server/panel/pyenv/bin/python,可能是宝塔自身插件(如木马查杀)在扫描,不是网站问题
网站级资源归属不能靠猜——用进程+路径交叉验证
一个 php-fpm 进程到底属于哪个站?不能只看pool名,得结合配置文件路径和实际工作目录。宝塔没提供“站点CPU占比”这种聚合视图,得手动串线索。
- 查某站PHP配置:进【网站】→选站点→【设置】→【PHP版本】→点右侧“管理”→【服务】页看当前运行进程数
- 查该站PHP-FPM池配置路径:
/www/server/php/{版本号}/etc/php-fpm.d/www.conf(注意 pool 名是否为www) - 用
ps aux | grep 'php-fpm' | grep -v grep看进程启动参数,匹配-y后面的配置路径,再对照站点根目录 - 若多个站共用一个pool,
lsof -p PID查它打开的access.log文件路径,日志里域名就是真实归属
别迷信面板日报——它的采样周期太粗
【面板日报】里显示的“昨日最高CPU 92%”,只是全天一个峰值快照,既没时间戳,也没上下文。你无法知道它是凌晨3点数据库备份导致的瞬时尖峰,还是下午2点被CC攻击持续打满的。
- 日报适合看趋势(比如连续三天峰值都在爬升),不适合做归因
- 要定位具体时间点的问题,必须用【监控】页的时间范围选择器,拉到对应小时,再结合【终端】里查
journalctl -u nginx --since "2026-03-24 14:00:00"看错误日志 - 如果需要秒级精度(比如抓500ms内抖动),宝塔原生不支持,得自己写脚本调用
/api/system/get_system_info接口,每5秒抓一次存SQLite
cpu_usage: 87% 和 /www/wwwroot/shop.example.com/api/v2/order.php 这行代码联系起来——中间差的是进程树、日志时间对齐、还有配置文件里那一行不起眼的 pm.max_children = 50。










