之前介绍了相关mysql的性能参数调优,这些天利用基准测试工具对mysql的测试,Jason留下点Memory。
Mysql数据库本身提供了比较优秀的性能测试工具,这里另外介绍下sysbench。
Sysbench 主要的测试方法有:
CPU性能
磁盘IO性能
调度程序性能
内存分配及传输速度
POSIX线程性能
数据库OLTP性能测试
其中数据库OLTP性能测试支持Mysql,PostgreSQL和ORACLE.sysbench主要应用于Linux.
对于InnoDB存储引擎的数据库应用来说,我们更关心的是磁盘和OLTP性能,所以sysbench提供了相应的测试选项:
IO性能测试的fileio选项,包括prepare,run和clean三个阶段。
sysbench –test=fileio –file-num=16 –file-total-size=2G prepare
上面的命令产生了16个文件总大小2GB
sysbench –test=fileio –file-total-size=2G –file-test-mode=rndrd –max-time=180–max-requests=100000000 –num-threads=16 –init-rng=on –file-num=16 –file-extra-flags=direct –file-fsybc-freq=0 –file-block-size=16384 run
在结果中我们关注的是读取性能和IOPS值。
对于OLTP性能来说和上面的步骤一样,首先prepare,
sysbench –test=oltp –oltp-table-size=80000000 –db-driver=mysql –mysql-socket=/tmp/mysql.sock –mysql-user=root prepare
之后开始测试:
sysbench –test=oltp –oltp-table-size=80000000 –oltp-read-only=off –init-rng=on –num-threads=16 –max-requests=0 –oltp-dist-type=uniform –max-time=3600 –mysql-user=root –db-driver=mysql –mysql-socket=/tmp/mysql.sock run > log.log
我们关注的transactions的总数及TPS。
比较重要的参数:
–file-test-mode: 文件测试顺序,seqwr(顺序写),seqrewr(顺序读写),seqrd(顺序读),rndrd(随机读),rndwr(随机写)和rndrw(随机读写)
–file-rw-ratio : 测试时的读写比例。
这样我们就能更好的优化我们的mysql数据库了。