[MySQL]-压力测试之Sysbench
文章目录
森格 | 2022年12月
本文是对压力测试工具sysbench从部署、测试以压测结果的个人总结。
一、Sysbench概况
1)介绍
在前一篇文章中对TPCC这款工具做了介绍,它的主要压测有特定的场景,而本文介绍的Sysbench是一款基于LuaJIT的,模块化多线程基准测试工具,常用于数据库基准测试。
2)安装部署
如果想多了解一下Sysbench的细节的话,这里是Sysbench的GitHub的地址:
https://github.com/akopytov/sysbench
下面一起来进行安装部署:
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh |sudobashsudo yum -y install sysbench
sysbench --version
二、实战
1)构造测试数据
mysql>create database loadtest;
hostname>sysbench --db-driver=mysql --mysql-db=loadtest --report-interval=10 --mysql-user=xxxxxx --mysql-password=xxxxx --mysql-port=3306 --mysql-host=127.0.0.1 --tables=64 --table-size=10000000 --threads=20 oltp_read_write prepare
- –db-driver=mysql:基于MySQL的驱动连接数据库。
- –time=300:连续访问300s。
- –threads=10:用10个线程模拟并发访问。
- –report-interval=10:每隔一秒输出压测情况。
- –mysql-host=127.0.0.1 --mysqlport=3306 --mysql-user=test_user --mysql-password=test_user:哪个机器、哪个端口、用户名和密码是多少?
- –mysql-db=test_db --tables=20 --table_size=1000000:在哪个数据库中,构造多少测试表,每个测试表中构造多少测试数据?
- 测试模式:- prepare & run:准备输据 & 开始压测- oltp_read_only:测试只读性能- oltp_read_write:测试综合读写性能- oltp_delete:测试删除性能- oltp_update_index:测试更新索引字段性能- oltp_update_non_index:测试更新非索引字段性能- oltp_insert:测试插入性能- oltp_write_only:测试写入性能
2)开始运行
压测结果解读
- thds:10个线程在压测。
- tps:每秒执行9059.99个事务。
- qps:每秒执行9859.88个请求,(r/w/o:这些请求中读/写/其他请求分别的多少)。
- lat(ms,95%):95%的请求的延迟都在4.65ms以下,0个错误请求,0次网络重连。
最终结果
SQL statistics:
queries performed:
read: 591808 //300s的压测期间执行了59万多次的读请求
write: 169088 //压测期间执行了16万多次的写请求
other: 84544 //压测期间执行了8万多次的其他请求
total: 845440 //一共执行了84万多次的请求
// 这是说一共执行了4万多个的事务,每秒执行140+事务
transactions: 42272 (140.87 per sec.)
// 这是说一共执行了84万多次的请求,每秒执行2817+请求
queries: 845440 (2817.31 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)
// 一共执行了300s的压测,执行了4万+的事务
General statistics:
total time: 300.0854s
total number of events: 42272
Latency (ms):
min: 10.18 // 请求中延迟最小的是10.18ms
avg: 141.96 // 所有请求平均延迟是141.96ms
max: 2200.01 // 延迟最大的请求是2200.01ms
95th percentile: 292.60 // 95%的请求延迟都在292.60ms以内
sum: 6000792.76 // 总共请求为6000792.76ms
Threads fairness:
events (avg/stddev): 2113.6000/16.31
execution time (avg/stddev): 300.0396/0.03
三、总结
介绍了压测工具Sysbench,如何生成测试表和数据,几种不同的测试模式:oltp_/read_write/read_only/delete/update_index/update_non_index/insert,以及对每秒测试报告、总测试报告的分析。
版权归原作者 森格的博 所有, 如有侵权,请联系我们删除。