Sysbench工具使用(批量生成数据)
基准测试工具Sysbench1、sysbench安装centos7 安装12# curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bashsudoyum -yinstallsysbench$whereis sysbench安装的目录:/usr/share/sysbe
基准测试工具Sysbench
1、sysbench安装
centos7 安装
1 2 |
# curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench |
$whereis sysbench
安装的目录:/usr/share/sysbench
[root@mongo-svr8 cg]# whereis sysbench
sysbench: /usr/bin/sysbench /usr/share/sysbench
2、sysbench创建表和数据
2.1给数据库mytest247创建两张表插入1w条数据
sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=10.1.1.247 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=mytest247 --db-driver=mysql --tables=2 --table-size=10000 --report-interval=10 --threads=12 --time=120 prepare
2.2、创建1张表sbtest1插入300w条数据
$ sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=10.1.1.247 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=mytest247 --db-driver=mysql --tables=1 --table-size=3000000 --report-interval=10 --threads=12 --time=120 prepare
[root@mongo-svr8 cg]# sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=10.1.1.247 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=mytest247 --db-driver=mysql --tables=1 --table-size=3000000 --report-interval=10 --threads=12 --time=120 prepare sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Initializing worker threads...
Creating table 'sbtest1'... Inserting 3000000 records into 'sbtest1' Creating a secondary index on 'sbtest1'... |
2.3、压测
Sysbench压测MySQL流程:prepare(准备数据) -> run(运行测试) -> cleanup(清理数据)
以oltp_read_only.lua为例压测MySQL:
$ sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=10.1.1.247 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=mytest247 --db-driver=mysql --tables=1 --table-size=3000000 --report-interval=10 --threads=12 --time=120 run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options: Number of threads: 12 Report intermediate results every 10 second(s) Initializing random number generator from current time
Initializing worker threads...
Threads started!
[ 10s ] thds: 12 tps: 260.77 qps: 4179.13 (r/w/o: 3656.59/0.00/522.54) lat (ms,95%): 84.47 err/s: 0.00 reconn/s: 0.00 [ 20s ] thds: 12 tps: 286.61 qps: 4592.81 (r/w/o: 4019.38/0.00/573.43) lat (ms,95%): 68.05 err/s: 0.00 reconn/s: 0.00 [ 30s ] thds: 12 tps: 307.70 qps: 4921.62 (r/w/o: 4306.42/0.00/615.20) lat (ms,95%): 62.19 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 12 tps: 289.11 qps: 4624.23 (r/w/o: 4045.91/0.00/578.32) lat (ms,95%): 71.83 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 12 tps: 276.84 qps: 4429.17 (r/w/o: 3875.50/0.00/553.67) lat (ms,95%): 77.19 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 12 tps: 276.46 qps: 4423.11 (r/w/o: 3870.30/0.00/552.81) lat (ms,95%): 78.60 err/s: 0.00 reconn/s: 0.00 [ 70s ] thds: 12 tps: 282.41 qps: 4515.53 (r/w/o: 3950.51/0.00/565.02) lat (ms,95%): 75.82 err/s: 0.00 reconn/s: 0.00 [ 80s ] thds: 12 tps: 275.99 qps: 4418.97 (r/w/o: 3867.08/0.00/551.88) lat (ms,95%): 81.48 err/s: 0.00 reconn/s: 0.00 [ 90s ] thds: 12 tps: 288.10 qps: 4607.99 (r/w/o: 4031.79/0.00/576.20) lat (ms,95%): 77.19 err/s: 0.00 reconn/s: 0.00 [ 100s ] thds: 12 tps: 276.30 qps: 4424.02 (r/w/o: 3871.41/0.00/552.60) lat (ms,95%): 86.00 err/s: 0.00 reconn/s: 0.00 [ 110s ] thds: 12 tps: 281.70 qps: 4506.18 (r/w/o: 3942.68/0.00/563.50) lat (ms,95%): 74.46 err/s: 0.00 reconn/s: 0.00 [ 120s ] thds: 12 tps: 282.00 qps: 4509.49 (r/w/o: 3945.69/0.00/563.80) lat (ms,95%): 75.82 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 473942 /总select数量 write: 0 //总update、insert、delete语句数量; other: 67706 //commit、unlock tables以及其他mutex的数量; total: 541648 transactions: 33853 (281.99 per sec.) //TPS; queries: 541648 (4511.83 per sec.) //QPS; ignored errors: 0 (0.00 per sec.) //忽略的错误数; reconnects: 0 (0.00 per sec.)
General statistics: total time: 120.0463s /即time指定的压测实际; total number of events: 33853 //总的事件数,一般与transactions相同;
Latency (ms): min: 10.88 //最小响应时间; avg: 42.54 //平均响应时间; max: 234.67 //最大响应时间; 95th percentile: 75.82 //95%的语句的平均响应时间; sum: 1440119.80 //总响应时间;
Threads fairness: events (avg/stddev): 2821.0833/61.41 execution time (avg/stddev): 120.0100/0.01 |
我们一般关注的指标主要有:
response time avg:平均响应时间(后面的95%的大小可以通过–percentile=98的方式去更改)。
transactions:精确的说是这一项后面的TPS,但如果使用了–skip-trx=on,这项事务数为0,需要用total number of events去除以总时间,得到tps(其实还可以分为读tps和写tps)。
queries:用它除以总时间,得到吞吐量QPS。
当然还有一些系统层面的cpu,io,memory相关指标。
2.4、清洗数据
$ sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=10.1.1.247 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=mytest247 --db-driver=mysql --tables=1 --table-size=3000000 --report-interval=10 --threads=12 --time=120 cleanup
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Dropping table 'sbtest1'... |
参考:https://www.jianshu.com/p/4a37a6a452d9

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)