Sysbench ShardingSphere Proxy 空 Rules 性能测试
- sysbench 直接压测 MySQL 性能
- sysbench 压测 ShardingSphere-Proxy(底层透传 MySQL)
- DB 相关配置:推荐内存大于压测的数据量,使得数据均在内存热块中,其余可自行调整;
- ShardingSphere-Proxy 相关配置:推荐使用高性能多核 CPU,其余可自行调整;
- 压测涉及服务器均关闭 swap 分区。
数据库
ShardingSphere-Proxy
bin/start.sh
config.yaml
sysbench oltp_read_write --mysql-host=${DB_IP} --mysql-port=${DB_PORT} --mysql-user=${USER} --mysql-password=${PASSWD} --mysql-db=test --tables=10 --table-size=1000000 --report-interval=10 --time=100 --threads=200 prepare
压测命令
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 200
Report intermediate results every 10 second(s)
Initializing random number generator from current time
Initializing worker threads...
Threads started!
# 每 10 秒钟报告一次测试结果,tps、每秒读、每秒写、95% 以上的响应时长统计
[ 10s ] thds: 200 tps: 11161.70 qps: 223453.06 (r/w/o: 156451.76/44658.51/22342.80) lat (ms,95%): 27.17 err/s: 0.00 reconn/s: 0.00
...
SQL statistics:
queries performed:
read: 19560590 # 读总数
write: 5588740 # 写总数
other: 27943700 # 其他操作总数 (COMMIT 等)
total: 27943700 # 全部总数
transactions: 1397185 (11638.59 per sec.) # 总事务数 ( 每秒事务数 )
ignored errors: 0 (0.00 per sec.) # 忽略错误数 ( 每秒忽略错误数 )
reconnects: 0 (0.00 per sec.) # 重连次数 ( 每秒重连次数 )
General statistics:
total number of events: 1397185 # 总共发生多少事务数
Latency (ms):
min: 5.37 # 最小延时
avg: 17.13 # 平均延时
max: 109.75 # 最大延时
95th percentile: 24.83 # 超过 95% 平均耗时
sum: 23999546.19
Threads fairness:
events (avg/stddev): 6985.9250/34.74 # 平均每线程完成 6985.9250 次 event,标准差为 34.74
execution time (avg/stddev): 119.9977/0.01 # 每个线程平均耗时 119.9977 秒,标准差为 0.01
压测过程中值得关注的点
- ShardingSphere-Proxy 所在服务器 CPU 利用率,充分利用 CPU 为佳;
- DB 所在服务器磁盘 IO,物理读越低越好;