安装sysbench环境:
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
yum install -y sysbench
sysbench -version 能显示版本号即可
数据库压测脚本:
sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare
参数解释:
--db-driver=mysql:基于mysql的的驱动去连接mysql数据库
--time=300:连续访问300秒
--threads=10:使用10个线程模拟并发访问
--report-interval=1:每隔一秒输出一下压测情况
--mysql-db=test --tables=20 --table_size=1000000:在test数据库中,构造20个测试表,每个测试表中构造100万条数据
oltp_read_write:表示执行oltp数据库的读写测试
--db-ps-mode=disable:禁止ps模式
prepare:意思是参照我们前面的配置准备数据
只读测试:
sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable run
结果:
thds: 10 tps: 8.00 qps: 118.99 (r/w/o: 80.00/23.00/16.00) lat (ms,95%): 1771.29 err/s: 0.00 reconn/s: 0.00
参数解读:
thds:10 意思是有10 个线程在压测
tps:8.00 表示每秒钟执行了8 个事务
qps:118.99 表示每秒钟执行了118.99 个请求
(r/w/o: 80.00/23.00/16.00) 这个意思是:在每秒118.99的请求情况下,80个是读请求,23个是写请求,16个是其他请求
lat(ms,95%):1711.29 表示95%的请求延迟在1711.29ms一下
err/s: 0.00 reconn/s: 0.00 这两个意思是 每秒有0个请求是失败的,发生了0次网络重连
压测完成后的总的压测报告
SQL statistics:
queries performed:
read: 924 //在10秒中的压测期间进行了924次的读请求
write: 264 //在压测期间进行了264次的写请求
other: 132 //在压测期间进行了132次的其他请求
total: 1320/ /在压测期间进行了1320的请求
transactions: 66 (5.78 per sec.)//一共执行了66个事务(每秒执行5.78个)
queries: 1320 (115.52 per sec.)//一共执行了1320个请求(每秒115.52次)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)
//下面的意思是:一共执行了11.4245秒的压测,一共执行了66次请求
General statistics:
total time: 11.4245s
total number of events: 66
Latency (ms):
min: 249.33 //请求中延迟最小的是249.33ms
avg: 1637.88//所有请求平均的延迟是13.42ms
max: 2844.15//请求中延迟最大的是2844.15ms
95th percentile: 2493.86//95%的请求延迟都在2493.86ms以内
sum: 108099.98
Threads fairness:
events (avg/stddev): 6.6000/0.80
execution time (avg/stddev): 10.8100/0.40