压力测试需结合系统监控验证调优效果:CPU重点看相同负载下延迟、温度、上下文切换变化;内存需在压力下观察缺页与换入换出速率;IO需用混合读写负载对比await、svctm、%util;全程须同步sar、pidstat、ss等监控突变点。

直接用压力测试工具模拟真实瓶颈,再结合系统监控看调优前后关键指标的变化,这才是验证抗压能力的有效方式。光看参数或跑个简单命令,看不出优化是否真起作用。
CPU抗压能力验证
重点不是让CPU跑满,而是观察在相同负载下,调优后是否延迟更低、温度更稳、上下文切换更少。
- 用 stress-ng --cpu 4 --cpu-method matrixprod --timeout 300 模拟持续浮点密集运算,比单纯
stress --cpu 4更贴近科学计算或AI推理场景 - 同步运行 perf stat -e cycles,instructions,cache-misses,context-switches,对比调优前后的IPC(instructions per cycle)和cs/s数值
- 配合 watch -n1 'cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | awk "{sum+=\$1} END {print sum/1000}' 查看平均核心温度变化
内存与调度协同验证
很多调优(如修改 vm.swappiness、sched_latency_ns 或启用 transparent_hugepage)必须在内存压力下才能显效。
- 启动 stress-ng --vm 2 --vm-bytes 3G --vm-keep --timeout 300,保持两进程长期占用大量内存且不释放页框
- 用 vmstat 1 300 观察
pgmajfault(大页缺页)和pgpgin/pgpgout(换入换出速率)是否下降 - 检查 /proc/sys/kernel/sched_latency_ns 调整后,
top中高优先级进程的%CPU波动是否收窄
IO与内核参数联动验证
磁盘IO调优(如I/O调度器、read_ahead_kb、nr_requests)只有在混合读写+高并发时才暴露差异。
- 用 fio --name=randrw --ioengine=libaio --rw=randrw --bs=4k --rwmixread=70 --iodepth=32 --numjobs=4 --runtime=300 --group_reporting 模拟数据库典型负载
- 对比调优前后 iostat -x 1 中的
await(平均IO等待时间)、svctm(服务时间)和%util是否同步改善 - 若启用了
bfq调度器,加参数 --ioscheduler=bfq 并观察多任务并行时的响应抖动是否降低
必须同步做的监控项
不带监控的压力测试等于没做。调优效果藏在突变点里,不在峰值数字中。
-
sar -u 1 300:看
%idle下降是否平缓,%iowait是否异常跳升(说明IO成了新瓶颈) -
sar -r 1 300:关注
%memused和kbmemfree走势,避免OOM Killer误触发 -
pidstat -w 1 300:检查
cswch/s(每秒上下文切换)是否在调优后显著回落 - ss -s 和 netstat -s | grep -i "retrans":验证网络调优是否降低了重传率和连接堆积


















