服务器性能基准测试实战:CPU、内存、磁盘吞吐与延迟量化方法

服务器运维与选型都离不开量化数据:云服务器选型、物理机架设、硬件更换后的验收,都需要把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/

(0)
小编小编
上一篇 11小时前
下一篇 11小时前

相关推荐