压力测试前必须确认宝塔监控已开启,否则图表显示为0或空白;开启后需等待1–2分钟才出图,且要区分首页负载百分比(综合评估)与真实CPU使用率。

压力测试前必须确认监控已开启且有数据
宝塔面板的系统监控不是默认运行的,不手动点开右上角“开启监控”,所有图表都显示为 0 或空白——这不是故障,是压根没采集。很多人做完压力测试发现曲线平直,结果发现监控按钮还是灰色的。
登录面板后直奔【监控】菜单,确认右上角显示绿色“已开启”;开启后需等待 1–2 分钟才开始出图,别刚点完就狂刷页面。首页“状态概览”里的负载百分比是综合值(CPU+内存+IO+网络),它 ≠ CPU 使用率,高负载时可能磁盘已卡死,但 CPU 曲线还很平稳。
- 用
top -c验证真实 CPU 占用:进【终端】执行top -c,按 Shift + P 按 CPU 倒序,重点看COMMAND列是否出现大量php-fpm: pool www、nginx: worker或python3 /www/wwwroot/xxx.com/app.py - 若看到
sh -c /www/server/panel/pyenv/bin/python占高,大概率是宝塔自身插件(如木马查杀)在扫描,不是你发起的压力测试导致的
用 ab 或 wrk 对网站发起请求,同时盯住监控面板
宝塔不提供内置压测工具,得靠命令行发起真实流量,再用面板图表观察响应。推荐用 ab(Apache Bench)或更现代的 wrk,它们轻量、无依赖、输出明确。
-
ab -n 1000 -c 50 http://your-site.com/:模拟 50 并发、共 1000 次请求 -
wrk -t4 -c100 -d30s http://your-site.com/:4 线程、100 连接、持续 30 秒 - 执行压测命令的同时,切回宝塔【监控】页,紧盯 CPU、内存、磁盘 IO、网络四条曲线是否同步拉升
- 特别注意
%util(磁盘利用率)是否冲到 90%+ 且await(平均 IO 等待)跳到 >50ms——这说明瓶颈不在 CPU,而在磁盘,继续加并发只会让响应更慢
识别“假压力”:面板日报和实时图的区别
【面板日报】里写的“昨日最高 CPU 92%”,只是全天一个峰值快照,没有时间戳、没有上下文。你无法知道它是压测时的持续满载,还是凌晨 3 点备份脚本导致的 2 秒尖峰。
- 做压力测试时,必须用【监控】页顶部的时间范围选择器,拉到“最近 1 小时”或“最近 30 分钟”,才能看清曲线变化节奏
- 如果压测中 CPU 曲线只抖动几秒就回落,大概率是请求被 Nginx 缓存命中,没打到 PHP 或数据库;此时要关掉站点缓存或加
?t=xxx参数绕过 - 若网络带宽曲线飙升但服务器 CPU/IO 平稳,说明压力被 CDN 或 WAF 拦截了,根本没到你的服务器
压测后必须检查的三个隐藏瓶颈点
很多人只盯着 CPU 和内存,却忽略宝塔环境里更常出问题的底层环节。
- PHP-FPM 子进程数是否耗尽:
ps aux | grep 'php-fpm' | wc -l,对比配置中pm.max_children值;若接近上限,新请求会排队,表现为高await和低吞吐 - MySQL 连接数是否打满:
mysqladmin -u root -p"$(cat /www/server/panel/database.conf | grep password | cut -d'=' -f2)" status | grep Threads,Threads_connected 接近max_connections就会拒绝新连接 - 宝塔自身计划任务干扰:检查
/www/server/panel/data/start_daily.pl是否存在且正在运行,该脚本在某些版本中会高频读写日志,与压测叠加时放大 IO 压力


















