YashanDB Hardware Requirements SOP
1 概述
1.1 目的
确定机器硬件性能是否符合预期,为后续数据库参数配置提供依据。
1.2 适用范围
YashanDB POC 性能测试场景,包括 TPC-C 测试和业务系统性能测试。
1.3 测试工具
- sysbench(CPU、内存、IO 性能测试)
- ping(网络时延测试)
2 测试前准备
2.1 安装 sysbench
下载地址:https://github.com/akopytov/sysbench
安装步骤:
unzip sysbench-master.zip cd sysbench-master ./autogen.sh ./configure --without-mysql CFLAGS="-std=gnu99" make && make install
|
执行完之后,sysbench 可执行程序,在 src 目录下。

3 CPU 性能测试
3.1 测试原理
通过循环计算素数来评估 CPU 性能。
3.2 测试命令
sysbench cpu --cpu-max-prime=20000 --threads=1 run
|
3.3 关键指标
- events/s:每秒完成的事件数,值越高代表 CPU 性能越好
3.4 评估标准
| 指标 |
说明 |
| events/s > 10000 |
性能良好 |
| events/s 5000-10000 |
性能一般 |
| events/s < 5000 |
性能较差 |
4 内存性能测试
4.1 测试命令
sysbench memory --memory-block-size=8K --memory-total-size=32G --memory-scope=global --memory-oper=read --memory-access-mode=seq --threads=1 --time=30 run
|
4.2 关键指标
一般不会有什么问题。
5 IO 性能测试
5.1 测试前准备
sysbench fileio --file-num=1 --file-block-size=8K --file-total-size=10G --file-io-mode=sync prepare
|
5.2 测试命令
| 测试类型 |
命令 |
| 顺序写 |
sysbench fileio --file-num=1 --file-block-size=8K --file-total-size=10G --file-test-mode=seqwr --threads=2 run |
| 顺序读 |
sysbench fileio --file-num=1 --file-block-size=8K --file-total-size=10G --file-test-mode=seqrd --threads=2 run |
| 顺序读写 |
sysbench fileio --file-num=1 --file-block-size=8K --file-total-size=10G --file-test-mode=seqrewr --threads=2 run |
| 随机写 |
sysbench fileio --file-num=1 --file-block-size=8K --file-total-size=10G --file-test-mode=rndwr --threads=2 run |
| 随机读 |
sysbench fileio --file-num=1 --file-block-size=8K --file-total-size=10G --file-test-mode=rndrd --threads=2 run |
| 随机读写 |
sysbench fileio --file-num=1 --file-block-size=8K --file-total-size=10G --file-test-mode=rndrw --threads=2 run |
每测试一次都要重新 prepare 准备测试文件。
5.3 关键指标
- 吞吐量(MB/s):值越高越好
- 延迟(ms):值越低越好
5.4 评估标准
| 指标 |
性能良好 |
性能一般 |
性能较差 |
| 顺序写吞吐量 |
> 500 MB/s |
200-500 MB/s |
< 200 MB/s |
| 随机写延迟 |
< 1ms |
1-5ms |
> 5ms |
5.5 瓶颈判断
- 随机读写延迟 > 1ms 时,建议升级 SSD 或优化 RAID 配置
5.6 测试后清理
sysbench fileio --file-num=1 --file-total-size=10G cleanup
|
6 网络性能测试
6.1 测试命令
6.2 关键指标

6.3 评估标准
| 场景 |
性能良好 |
性能一般 |
性能较差 |
| TPC-C 场景 |
< 1ms |
1-5ms |
> 5ms |
| 业务系统 |
< 5ms |
5-10ms |
> 10ms |
6.4 注意事项
- TPC-C 场景主要关注小包多次的低延迟
- 测试过程中持续监测网络时延是否有波动
7 测试记录模板
| 测试项 |
测试命令 |
关键指标 |
测试结果 |
评估 |
来源 |
| CPU 性能 |
sysbench cpu --cpu-max-prime=20000 --threads=1 run |
events/s |
|
|
sysbench 官方 |
| 内存带宽 |
sysbench memory ... |
MB/s |
|
|
sysbench 官方 |
| 顺序写 IO |
sysbench fileio --file-test-mode=seqwr ... |
MB/s |
|
|
sysbench 官方 |
| 随机写 IO |
sysbench fileio --file-test-mode=rndwr ... |
MB/s, ms |
|
|
sysbench 官方 |
| 网络时延 |
ping -c 100 |
ms |
|
|
系统自带 |
8 常见问题与解决
| 问题 |
原因 |
解决方案 |
| 内存测试结果波动大 |
NUMA 跨节点访问 |
使用 numactl 绑定到本地节点 |
| IO 测试 fsyncs/s 过高 |
频繁刷盘 |
调整 --file-fsync-freq 参数 |
| 随机 IO 延迟过高 |
磁盘性能差 |
升级 SSD 或优化 RAID 配置 |
| 网络时延波动大 |
网络拥塞或设备问题 |
检查网络设备和配置 |