服务器稳定性及基准测试方法

CPU基准和稳定性测试

测试项 测试工具 参考业务场景
浮点运算 Linpack 数据分析、大量数值计算、机器学习推理/训练
整数运算 sysbench cpu Redis、Kafka
稳定性 Stress-NG CPU、内存、IO全面压力测试

内存基准和稳定性测试

测试项 测试工具 参考业务场景
内存带宽 Stream Copy/Scale/Add/Triad 内存数据库(Redis)、大数据处理、Kafka 消息队列、缓存系统
压力测试 sysbench memory 压力测试,随机、顺序访问测试
稳定性测试 memtester 持续运行数小时,测试稳定性

网络基准测试

测试项 测试工具 参考业务场景
带宽极限 iperf3 测试带宽极限性能是否接近理论极限值
吞吐测试 netperf TCP_RR / UDP_RR 微服务 RPC、数据库访问、API 调用、Kafka 消息传输

硬盘测试

测试项 测试工具 参考业务场景
4k单队列 fio bs=4k iodepth=1 MySQL场景
4k 32队列 fio bs=4k iodepth=32 MongoDB场景
32k 32队列 fio bs=32k iodepth=32 高并发Web服务,Kafka日志刷盘,多线程缓存写入
1m 单队列 fio bs=1m iodepth=1 顺序读写,备份、视频流、镜像分发
1m 32队列 fio bs=1m iodepth=32 并发大文件读写,大规模备份,分布式存储,对象存储

其中针对业务场景,根据单台服务器部署的业务数量适当设置numjobs以模拟操作系统/应用层并发。

例如单台服务器4个数据库,则fio bs=4k iodepth=32 numjobs=4

iodepth对应单个线程的队列深度,用于存储设备并发能力测试

numjobs对应多个线程并发,用于测试操作系统/应用层并发能力

综合基准测试

测试项 测试工具 参考业务场景
综合性能指数 UnixBench 横向比较整机性能