首先使用 Docker 拉取 sysbench 的镜像:
docker pull severalnines/sysbench
然后需要初始化数据,自动在指定的数据库(test)中创建一些测试表。docker run --rm
命令会在在容器退出后自动删除容器,不会占用空间。
sudo docker run --rm severalnines/sysbench \
sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=10.96.254.243 \
--mysql-port=4406 \
--mysql-user=root \
--mysql-password=tjmysql57 \
--mysql-db=test \
--tables=4 \
--table-size=10000 \
prepare
然后就可以开始压测,--threads
表示并发线程数,--time
压测时长(单位:秒)--report-interval
每隔多久输出一次结果。
sudo docker run --rm severalnines/sysbench \
sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=10.96.254.243 \
--mysql-port=4406 \
--mysql-user=root \
--mysql-password=tjmysql57 \
--mysql-db=test \
--tables=4 \
--table-size=10000 \
--threads=128 \
--time=60 \
--report-interval=10 \
run
压测完后如果你不需要保留数据,可以清掉:
sudo docker run --rm severalnines/sysbench \
sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=10.96.254.243 \
--mysql-port=4406 \
--mysql-user=root \
--mysql-password=tjmysql57 \
--mysql-db=test \
cleanup
运行完会看到类似输出:
SQL statistics:
queries performed:
read: 0
write: 1472485
other: 736343
total: 2208828
transactions: 367997 (6128.54 per sec.)
queries: 2208828 (36785.31 per sec.)
ignored errors: 349 (5.81 per sec.)
reconnects: 0 (0.00 per sec.)
General statistics:
total time: 60.0408s
total number of events: 367997
Latency (ms):
min: 6.33
avg: 20.87
max: 369.09
95th percentile: 34.95
sum: 7678863.30
Threads fairness:
events (avg/stddev): 2874.9766/15.38
execution time (avg/stddev): 59.9911/0.00
实测平台:
CPU:Intel(R) Xeon(R) Platinum 8336C CPU @ 2.30GHz 64核心
内存:128GB
存储:SAMSUNG MZVL21T0HCLR-00B00 固态硬盘
实测结果,每秒事务数 TQS 为 6128,每秒请求数 QPS 为 36785,平均响应时间为 20.87ms。