首先使用 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。