sysbench mysql图表_sysbench_mysql

本文介绍了如何使用sysbench对MySQL进行压力测试,包括创建表、插入数据以及测试过程。测试过程中,sysbench以只读模式运行,创建多个线程进行并发操作。测试结果显示了每10秒的读取速度、响应时间和事务处理能力等关键指标,帮助评估MySQL的性能。
摘要由CSDN通过智能技术生成

ref

测试

当执行下面这个sysbench测试mysql的时候,你不知道的可能可能是:

这到底是在测试读写?还是 读? 答: 只读

--num-threads=12 啥意思? 答:就是说有12个线程在同时链接

你可以看到:这是在创建 表

Creating table 'sbtest1'...

Inserting 500000 records into 'sbtest1'

Creating table 'sbtest2'...

Inserting 500000 records into 'sbtest2'

Creating table 'sbtest3'...

..

..

..

而接下来,才是你测试的过程,你设置--max-time=120 就是说测试120s

sysbench --test=/tmp/sysbench/sysbench-0.4.12-1.1/sysbench/tests/db/oltp.lua \

--mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root \

--mysql-db=sbtest --oltp-tables-count=10 --oltp-table-size=500000 \

--report-interval=10 --oltp-dist-type=uniform --rand-init=on --max-requests=0 \

--oltp-read-only=on --oltp-skip-trx=on \

--max-time=120 --num-threads=12 prepare

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools]

#sh sysbench/sysbench_mysql.sh -d

mysql -h127.0.0.1 -P3306 -uroot

create database sbtest

sysbench 0.5: multi-threaded system evaluation benchmark

Creating table 'sbtest1'...

Inserting 500000 records into 'sbtest1'

Creating table 'sbtest2'...

Inserting 500000 records into 'sbtest2'

Creating table 'sbtest3'...

Inserting 500000 records into 'sbtest3'

Creating table 'sbtest4'...

Inserting 500000 records into 'sbtest4'

Creating table 'sbtest5'...

Inserting 500000 records into 'sbtest5'

Creating table 'sbtest6'...

Inserting 500000 records into 'sbtest6'

Creating table 'sbtest7'...

Inserting 500000 records into 'sbtest7'

Creating table 'sbtest8'...

Inserting 500000 records into 'sbtest8'

Creating table 'sbtest9'...

Inserting 500000 records into 'sbtest9'

Creating table 'sbtest10'...

Inserting 500000 records into 'sbtest10'

sysbench 0.5: multi-threaded system evaluation benchmark

Running the test with following options:

Number of threads: 12

Report intermediate results every 10 second(s)

Initializing random number generator from timer.

Random number generator seed is 0 and will be ignored

Threads started!

[ 10s] threads: 12, tps: 0.00, reads/s: 50022.15, writes/s: 0.00, response time: 3.90ms (95%)

[ 20s] threads: 12, tps: 0.00, reads/s: 54988.13, writes/s: 0.00, response time: 3.74ms (95%)

[ 30s] threads: 12, tps: 0.00, reads/s: 54559.99, writes/s: 0.00, response time: 3.79ms (95%)

[ 40s] threads: 12, tps: 0.00, reads/s: 55341.59, writes/s: 0.00, response time: 3.65ms (95%)

[ 50s] threads: 12, tps: 0.00, reads/s: 55481.02, writes/s: 0.00, response time: 3.65ms (95%)

[ 60s] threads: 12, tps: 0.00, reads/s: 55929.09, writes/s: 0.00, response time: 3.56ms (95%)

[ 70s] threads: 12, tps: 0.00, reads/s: 55855.21, writes/s: 0.00, response time: 3.63ms (95%)

[ 80s] threads: 12, tps: 0.00, reads/s: 55590.89, writes/s: 0.00, response time: 3.62ms (95%)

[ 90s] threads: 12, tps: 0.00, reads/s: 55348.11, writes/s: 0.00, response time: 3.68ms (95%)

[ 100s] threads: 12, tps: 0.00, reads/s: 55783.70, writes/s: 0.00, response time: 3.62ms (95%)

[ 110s] threads: 12, tps: 0.00, reads/s: 55622.30, writes/s: 0.00, response time: 3.66ms (95%)

[ 120s] threads: 12, tps: 0.00, reads/s: 55634.92, writes/s: 0.00, response time: 3.64ms (95%)

OLTP test statistics:

queries performed:

read: 6601616

write: 0

other: 0

total: 6601616

transactions: 0 (0.00 per sec.)

deadlocks: 0 (0.00 per sec.)

read/write requests: 6601616 (55012.22 per sec.)

other operations: 0 (0.00 per sec.)

General statistics:

total time: 120.0027s

total number of events: 471544

total time taken by event execution: 1439.0586s

response time:

min: 2.20ms

avg: 3.05ms

max: 260.74ms

approx. 95 percentile: 3.69ms

Threads fairness:

events (avg/stddev): 39295.3333/1154.93

execution time (avg/stddev): 119.9215/0.00

[root@jiangyi01.sqa.zmf /home/ahao.mah]

#top -Hp 3997

6d22ed1979c6d441a6d8b34d6e5815e9.png

混合读写

读写测试还是用oltp.lua,只需把--oltp-read-only等于off。

只更新

如果基准测试的时候,你只想比较两个项目的update(或insert)效率,那可以不使用oltp脚本,而直接改用update_index.lua:

./bin/sysbench --test=./share/tests/db/update_index.lua \

--mysql-host=10.0.201.36 --mysql-port=8066 --mysql-user=ecuser --mysql-password=ecuser \

--mysql-db=dbtest1a --oltp-tables-count=10 --oltp-table-size=500000 \

--report-interval=10 --rand-init=on --max-requests=0 \

--oltp-read-only=off --max-time=120 --num-threads=128 \

[ prepare | run | cleanup ]

此时像oltp-read-only=off许多参数都失效了。需要说明的是这里 (非)索引更新,不是where条件根据索引去查找更新,而是更新索引列上的值。

结果解读

sysbench 0.5: multi-threaded system evaluation benchmark

Running the test with following options:

Number of threads: 128

Report intermediate results every 20 second(s)

Initializing random number generator from timer.

Random number generator seed is 0 and will be ignored

Initializing worker threads...

Threads started!

[ 20s] threads: 128, tps: 2354.54, reads: 33035.89, writes: 9423.39, response time: 66.80ms (95%), errors: 0.00, reconnects: 0.00

[ 40s] threads: 128, tps: 2377.75, reads: 33274.26, writes: 9507.55, response time: 66.88ms (95%), errors: 0.00, reconnects: 0.00

[ 60s] threads: 128, tps: 2401.35, reads: 33615.30, writes: 9607.40, response time: 66.40ms (95%), errors: 0.00, reconnects: 0.00

[ 80s] threads: 128, tps: 2381.20, reads: 33331.50, writes: 9522.55, response time: 67.30ms (95%), errors: 0.00, reconnects: 0.00

[ 100s] threads: 128, tps: 2388.85, reads: 33446.10, writes: 9556.35, response time: 67.00ms (95%), errors: 0.00, reconnects: 0.00

[ 120s] threads: 128, tps: 2386.40, reads: 33421.35, writes: 9545.35, response time: 66.94ms (95%), errors: 0.00, reconnects: 0.00

OLTP test statistics:

queries performed:

read: 4003048 //总select数量

write: 1143728 //总update、insert、delete语句数量

other: 571864 //commit、unlock tables以及其他mutex的数量

total: 5718640

transactions: 285932 (2382.10 per sec.) //通常需要关注的数字(TPS)

read/write requests: 5146776 (42877.85 per sec.)

other operations: 571864 (4764.21 per sec.)

ignored errors: 0 (0.00 per sec.) //忽略的错误数

reconnects: 0 (0.00 per sec.)

General statistics:

total time: 120.0334s //即max-time指定的压测实际

total number of events: 285932 //总的事件数,一般与transactions相同

total time taken by event execution: 15362.6623s

response time:

min: 17.60ms

avg: 53.73ms //95%的语句的平均响应时间

max: 252.90ms

approx. 95 percentile: 66.88ms

Threads fairness:

events (avg/stddev): 2233.8438/9.04

execution time (avg/stddev): 120.0208/0.01

我们一般关注的用于绘图的指标主要有:

response time avg: 平均响应时间。(后面的95%的大小可以通过--percentile=98的方式去更改)

transactions: 精确的说是这一项后面的TPS 。但如果使用了-oltp-skip-trx=on,这项事务数恒为0,需要用total number of events 去除以总时间,得到tps(其实还可以分为读tps和写tps)

read/write requests: 用它除以总时间,得到吞吐量QPS

当然还有一些系统层面的cpu,io,mem相关指标

sysbench还可以对文件系统IO测试,CPU性能测试,以及内存分配与传输速度测试,这里就不介绍了。

总结起来sysbench的缺点就是,模拟的表结构太简单,不像tpcc-mysql那样完整的事务系统。但对于性能压测对比还是很有用的,因为sysbench使用的环境参数限制是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值