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 目录下。

1777271390754

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 关键指标

  • 传输速率(MB/s):内存带宽,值越高越好

一般不会有什么问题。


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 测试命令

# 查看网络时延和丢包
ping -c 100 <目标IP>

6.2 关键指标

  • 时延(ms):值越低越好
  • 丢包率:应为 0%

1777272476922

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 配置
网络时延波动大 网络拥塞或设备问题 检查网络设备和配置