推荐使用的测试工具:sysbench、mysqlslap
sysbench针对性更强,设计初衷就是为了衡量mysql的性能。
mysqlslap官网提供的压测工具,可模拟多个并发客户端访问mysql执行压力测试。
1、sysbench的使用
目前sysbench主要支持mysql、postgreSQL、oracle三种数据库。
主要包括以下几种方式的测试
Fileio、Cpu、memory、threads、mutex、OLTP【一般选择此类型测试】
sysbench的安装
ubuntu可以直接使用 apt-get install sysbench安装,默认安装的版本是0.4.12
![](https://images2017.cnblogs.com/blog/688065/201709/688065-20170905112115319-1834902302.png)
1 ) 关于CPU的性能测试
cpu测试主要就是进行素数的运算,在下面的例子中,指定了最大的素数20000
sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=5 #执行cpu的性能测试,测试素数最大为20000, 线程数为5
![](https://images2017.cnblogs.com/blog/688065/201709/688065-20170905112115554-306380713.png)
可选用参数:
-
--percentile 95%:响应时间,也就是删除5%的响应时间最长的请求,然后从剩余的请求中选取最大的响应时间值 --max-time:运行时间限制,单位是秒 --num-threads: 线程数 --max-requests: 查询数限制
2 ) 关于线程数的性能测试 *待细化
![](https://images2017.cnblogs.com/blog/688065/201709/688065-20170905112115772-1920576644.png)
3 ) 关于磁盘I/O的性能测试
代码分为3个步骤,分别是准备数据、执行测试、清除测试数据
--num-thread=16 #指定了最大创建16个线程 --file-total-size=12G #参数指定创建的文档总大小12GB --file-test-mode=rndrw #指定文档的读写模式为随机读写
磁盘io性能测试是进行数据库基准测试要着重加以研究的,我们需要衡量各种因素,比如:
操作类型、读写的频率、IO大小、是随机读写还是顺序读写、写的类型是异步还是同步、并发线程情况、操作系统缓存状态及文件系统有哪些调优因素。
文件测试类型有:
seqwr顺序写、seqrewr顺序重写、seqrd顺序读、rndrd随机读、rndwr随机写、rndrw随机读写
sysbench --test=fileio --num-threads=16 --file-total-size=12G --file-test-mode=rndrw prepare #准备数据 sysbench --test=fileio --num-threads=16 --file-total-size=12G --file-test-mode=rndrw run #执行测试 sysbench --test=fileio --num-threads=16 --file-total-size=12G --file-test-mode=rndrw cleanup #清除测试数据
4)内存测试
指定了本次测试的整个过程是在内存中传输4GB的数据量,每个块(block)的大小为8KB
sysbench --test=memory --memory-block-size=8K --memory-total-size=4G run
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">