sysbench是一个模块化、跨平台、多线程基准测试工具,可用于以下性能测试:
1.CPU性能
2.磁盘IO性能
3.调度程序性能
4.内存分配及传输速度
5.POSIX线程性能
6.数据库性能(OLTP基准测试)
CPU
对CPU的性能测试通常有:1.算质数;2.算圆周率等
sysbench是使用质数相加的测试,对CPU测试直接运行run即可
命令
sysbench --num-threads=12--max-requests=10000 --debug=on --test=cpu --cpu-max-prime=20000 run
参数解析
num-thread:创建测试线程的数目,默认为1
max-requests:请求的最大数目,默认为10000,0代表不限制
debug:是否显示更多的调试信息,默认为off
test:指定测试项目名称:
cpu-max-prime:最大质数发生器数量,默认是10000
thread
测试线程调度的性能,用于高负载下的线程性能测试
命令
sysbench --num-threads=12--max-requests=10000 --test=threads --thread-yields=100 --thread-locks=2 run
参数解析
--thread-yields:每个请求产生多个线程,默认是1000
--threads-locks:每个线程的锁的数量,默认是8
memory
内存分配测试,主要针对不同的块大小进行内存的连续读写或者随机读写测试
可以分别测试8K和16K的顺序和随机分配
以8K顺序分配为例
命令
sysbench --num-threads=12--max-requests=10000 --test=memory --memory-block-size=8K--memory-total-size=100G --memory-access-mode=seq run
参数解析
memory-block-size:测试时,内存块大小
memory-total-size:传输数据的总大小
memory-access-mode:存储器存取方式(seq、rnd),默认是seq
IO
文件IO的测试,用于测试IO负载性能
需要测试6种模式下的IO负载性能,以随机读写模式为例
命令
sysbench --num-threads=12--max-requests=10000 --test=fileio --file-total-size=3G--file-test-mode=rndrw prepare/run/clean
参数解析
file-total-size:文件总大小
file-test-mode:文件测试模式(seqrewr,顺序读写;seqrd,顺序读;seqwr,顺序写;rndrw,随机读写;rndrd,随机读;rndwr,随机写)
结论
内存,随机分配比顺序分配速度快,块分配越大速度越快
磁盘,顺序写比随机写快,顺序读比随机读慢,顺序读写比随机读写快,针对不同的服务器,可考虑用不同的读写模式已提升IO性能