服务器运维与选型都离不开量化数据:云服务器选型、物理机架设、硬件更换后的验收,都需要把CPU、内存、磁盘、网络的真实吞吐跑出来,而不是只看标称参数。基准测试的价值在于建立基线,同一台机器不同时间的成绩对比,能快速定位性能劣化。本文给出Linux环境下的实测工具、命令与结果解读方法。
CPU基准测试:sysbench与UnixBench
sysbench的cpu子命令用素数计算压测CPU,适合快速对比单核与多核性能。
# 单线程,测试单核性能
sysbench cpu --threads=1 --time=30 --cpu-max-prime=20000 run
# 多线程,测试整体吞吐
sysbench cpu --threads=16 --time=30 --cpu-max-prime=20000 run
输出中重点看events per second与平均延迟。单线程结果代表单核处理能力,多线程结果反映并发吞吐;两者之比近似扩展性。UnixBench包含进程创建、管道通信、系统调用等混合负载,适合给整机打分,但耗时更长。
内存带宽与延迟:stream工具实测
内存性能用stream工具测带宽,单位为MB/s:
gcc -O3 -fopenmp stream.c -o stream
export OMP_NUM_THREADS=8
./stream
结果看Copy、Scale、Add、Triad四项。带宽偏低时,检查是否运行在单通道内存、是否跨NUMA访问。内存延迟用lmbench的lat_mem_rd测试,延迟在数十纳秒到上百纳秒之间波动。
磁盘性能:fio的四种IO模型
磁盘测试必须区分顺序读写与随机读写,随机4K看IOPS,顺序大块看带宽。fio是标准工具:
# 随机读,4K块,128深度
fio --name=randread --rw=randread --bs=4k --size=8G --numjobs=16 --iodepth=64 --runtime=60
# 顺序写,1M块
fio --name=seqwrite --rw=write --bs=1m --size=16G --runtime=60
重点看IOPS、带宽、平均延迟与p99延迟。SSD顺序写前需要留意是否触发缓存;跑完fio要检查掉盘与告警。对于数据库盘,随机4K IOPS与延迟抖动直接决定业务稳定性,务必保留历史基线。
网络与整机负载测试
网络吞吐用iperf3,双向测试才能暴露不对称问题:
iperf3 -s # 服务端
iperf3 -c 192.168.1.10 -t 30 -P 8 # 客户端并发
测试报告先看双向带宽与重传率。整机层面建议CPU、内存、磁盘、网络同时压测,观察互相影响,而不是单项成绩。多路NUMA服务器的跨节点带宽,往往比单路机器差几个百分点。
把基准数据用起来:基线、验收与排障
新购服务器上架前先跑一轮完整基准并留档,作为验收依据;运行中每隔一段时间重跑,与基线对比。若磁盘随机读IOPS突然下降,先查SMART、缓存与固件;若内存带宽下降,优先怀疑内存槽位或降频。基准测试提供的是对比数据,真正定位故障仍要配合日志与监控。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/fu-wu-qi-xing-neng-ji-zhun-ce-shi-shi-zhan-cpu-nei-cun-ci/