测试流程 完全参考使用obd 运行sysbench, 没有对observer 进行额外优化.
参考文档 OceanBase 社区
oltp_read_only: thds: 1024 tps: 20868.75 qps: 333963.95 (r/w/o: 292226.06/0.00/41737.89) lat (ms,95%): 108.68 err/s: 0.00 reconn/s: 0.00
oltp_write_only:thds: 1024 tps: 25568.93 qps: 153799.43 (r/w/o: 0.00/102559.39/51240.04) lat (ms,95%): 64.47 err/s: 0.00 reconn/s: 0.00
oltp_read_write: thds: 1024 tps: 9011.22 qps: 180156.33 (r/w/o: 126102.98/36042.59/18010.76) lat (ms,95%): 257.95 err/s: 0.00 reconn/s: 0.00
硬件配置:
阿里云ecs: 32core 128g, 系统盘essd 200GiB (4200 IOPS), 数据盘 essd 500GiB (26800 IOPS)
操作步骤:
- 用obd 部署1-1-1 集群, 这里一个小细节, 因为硬盘不够大, 没有使用autodeploy, 直接使用deploy, observer 内存设置为118g 内存, 系统目录和redo log 都是用系统盘, 数据目录使用数据盘
- 用obd 创建租户perf
- 有一个细节,sysbench和obproxy运行在同一台虚拟机下,虚拟机配置为32core128g,就一块essd系统盘 200GiB (11800 IOPS)
- 运行脚本
#!/bin/bash echo “run oltp_read_only test” obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_only.lua --table-size=1000000 --threads=32 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_only.lua --table-size=1000000 --threads=64 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_only.lua --table-size=1000000 --threads=128 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_only.lua --table-size=1000000 --threads=256 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_only.lua --table-size=1000000 --threads=512 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_only.lua --table-size=1000000 --threads=1024 echo “run oltp_write_only test” obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_write_only.lua --table-size=1000000 --threads=32 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_write_only.lua --table-size=1000000 --threads=64 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_write_only.lua --table-size=1000000 --threads=128 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_write_only.lua --table-size=1000000 --threads=256 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_write_only.lua --table-size=1000000 --threads=512 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_write_only.lua --table-size=1000000 --threads=1024 echo “run oltp_read_write test” obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_write.lua --table-size=1000000 --threads=32 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_write.lua --table-size=1000000 --threads=64 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_write.lua --table-size=1000000 --threads=128 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_write.lua --table-size=1000000 --threads=256 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_write.lua --table-size=1000000 --threads=512 obd test sysbench obperf --component=obproxy --tenant=perf --script-name=oltp_read_write.lua --table-size=1000000 --threads=1024
有一点遗憾:没有实时去看压测机和observer的cpu利用率,检查cpu是不是还有余量,理论上,如果压测机cpu已经跑满,但observer还有富余时,可以增加压测机进行增进压力
sysbench.log.zip (9985 KB)