什么是sysbench?
sysbench是一款linux下的系统基准测试工具.
sysbench不仅可以测试CPU,I/O,最重要的是可以测试数据库性能.
mysql官方都是以sysbench为基准测试工具.
https://github.com/akopytov/sysbench
sysbench安装
yum install sysbench #centos系 apt-get install sysbench #debian系
sysbench压力测试mysql
sysbench0.5以后都是使用LUA脚本进行测试,下面是官方自带的脚本
/usr/share/sysbench/bulk_insert.lua /usr/share/sysbench/oltp_common.lua /usr/share/sysbench/oltp_delete.lua /usr/share/sysbench/oltp_insert.lua /usr/share/sysbench/oltp_point_select.lua /usr/share/sysbench/oltp_read_only.lua /usr/share/sysbench/oltp_read_write.lua /usr/share/sysbench/oltp_update_index.lua /usr/share/sysbench/oltp_update_non_index.lua /usr/share/sysbench/oltp_write_only.lua /usr/share/sysbench/select_random_points.lua /usr/share/sysbench/select_random_ranges.lua
sysbench压力测试mysql流程: 创建测试数据库-> prepare(生成数据) -> run(运行测试) -> cleanup(清理数据)
1创建测试数据库
mysql -uroot -proot -e "create database test;"
2生成数据
sysbench /usr/share/sysbench/oltp_read_write.lua \ #执行脚本,这里我使用读写混合脚本 --db-driver=mysql \ #选择mysql数据库 --mysql-host=localhost \ #连接HOST --mysql-port=3306 \ #连接端口 --mysql-db=test \ #数据库 --mysql-user=root \ #账户 --mysql-password=root \ #密码 --table_size=5000000 \ #生成表数量,每500万大概1.1G,临时文件1.1G,注意空间 --tables=5 \ #生成5个表,可以自定义 -threads=5 \ #5线程并发,可以自定义 --time=10 \ #测试时间,可以自定义 --report-interval=10 \ #报告间隔,可以自定义 prepare \ #生成测试数据
3运行测试
sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-db=test --mysql-user=root --mysql-password=root --table_size=5000000 --tables=5 --threads=5 --time=10 --report-interval=10 run
4清理数据
这个你可以直接在数据库删除也可以执行下面命令
sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-db=test --mysql-user=root --mysql-password=root --table_size=5000000 --tables=5 --threads=5 --time=10 --report-interval=10 cleanup
测试报告解析
[ 10s ] thds: 5 tps: 188.15 qps: 3769.78 (r/w/o: 2639.66/753.32/376.81) lat (ms,95%): 35.59 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 26418 write: 7548 other: 3774 total: 37740 transactions: 1887 (188.32 per sec.) queries: 37740 (3766.31 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 10.0187s total number of events: 1887 Latency (ms): min: 12.97 avg: 26.52 max: 113.90 95th percentile: 35.59 sum: 50044.29 Threads fairness: events (avg/stddev): 377.4000/1.50 execution time (avg/stddev): 10.0089/0.01
一般我们只关心两个数据,第一行都写清楚了
transactions: 1887 (188.32 per sec.) # 每秒188.32事务 queries: 37740 (3766.31 per sec.)# 每秒3766.31查询
如果你想测试CPU,I/O请参考下面的文章
http://www.ywnds.com/?p=10111
此处评论已关闭