性能压测入门
约 637 字大约 2 分钟
2026-08-29
新机器验收、配置升级前后对比、容量评估,都需要一套可重复的压测方法。本文用 sysbench(CPU / 内存)、fio(磁盘)、iperf3(网络)三件套给服务器做基础体检。
压测会吃满资源
压测期间 CPU / 磁盘 / 带宽全部打满,同机业务会明显受影响,请在业务低峰进行;临时文件测完记得删除。
CPU 与内存:sysbench
sudo apt install sysbench -y # Debian/Ubuntu
sudo dnf install sysbench -y # CentOS/Rocky# CPU:关注 events per second(越高越强)
sysbench cpu --threads=4 run
# 内存:写入 8GB 看吞吐
sysbench memory --memory-block-size=1M --memory-total-size=8G run--threads 建议设为实际核心数,对比测试时前后必须一致。
磁盘 IO:fio
sudo apt install fio -y # 或 dnf install fio4K 随机读写(数据库场景)
fio --name=randrw --filename=/data/fio.test --size=1G \
--rw=randrw --rwmixread=70 --bs=4k \
--iodepth=64 --runtime=30 --time_based --direct=1 --group_reporting顺序读写(大文件场景)
fio --name=seq --filename=/data/fio.test --size=1G \
--rw=read --bs=1M \
--runtime=30 --time_based --direct=1 --group_reporting关注结果里的 IOPS(4K 随机)与 吞吐量 MB/s(顺序)。
三点注意
--filename指向数据盘目录,并确认磁盘剩余空间大于--size;--direct=1绕过缓存直写磁盘,结果才真实;- 测完删除测试文件:
rm /data/fio.test。
网络带宽:iperf3
需要两台机器(一台做服务端、一台打流量):
# 服务端(放行 TCP 5201 端口,见安全组文档)
iperf3 -s
# 客户端(另一台机器执行,跑 30 秒、4 并发)
iperf3 -c <服务器IP> -t 30 -P 4看客户端输出的 sender/receiver 速率(Mbps)。
网络测速的正确姿势
用家用宽带测会受本地出口影响;同地域另一台服务器对打才能测出真实带宽上限。服务器间互通与带宽计费方式参见带宽计费模式。
结果怎么用
单看数字意义有限,对比才有价值:
- 新机器用同一套命令跑一遍,记录基线:CPU eps、磁盘 IOPS、带宽 Mbps。
- 配置升级 / 换机房后用完全相同的命令与参数再跑一遍对比。
- 遇到"卡"的怀疑时,与Linux系统卡顿排查结合:压测时开另一个终端用
top、iostat观察资源是否先于业务到达瓶颈。
压测中进程资源占用怎么看,参见Linux资源查看基础命令;端口打不通先过测试端口连通性。
