sysbench是开源的跨平台多线程基准测试工具,利用sysbench很容易对mysql做性能基准测试,主要用于评估测试各种不同系统参数下的CPU、内存、I/O和数据库负载情况。目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。
主要包括以下几种方式的测试:
1、cpu性能
2、磁盘io性能
3、调度程序性能,互斥体性能
4、内存分配及传输速度
5、POSIX线程性能
6、数据库性能(OLTP基准测试)
sysbench压力测试工具使用:
2.1 测试数据库服务器的硬件配置信息如下:
CPU: 24核心线程数,Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
MEM: 64G,8*8G=64G
DISK: 15000转/秒
2.2 对磁盘IO性能的测试:
2.2.1 创建fileio文件
创建初始化fileio文件:
[root@db-master sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
16 files, 131072Kb each, 2048Mb total
Creating files for the test...
2.2.1 开始fileio测试
接下来开始对这些文件进行测试,使用16个线程随机读进行测试结果如下:
[root@db-master sysbench]# 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-fsync-freq=0 --file-block-size=16384 run
可以看到随机读取的性能为75.988Mb/sec,随机读的IOPS为4863.25 Requests/sec.说明服务器的硬件配置还不错。
2.2.3 测试完成执行cleanup
测试结束后,记得执行cleanup,以确保测试所产生的文件都已删除:
[root@db-master sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G cleanup
sysbench 0.4.12: multi-threaded system evaluation benchmark
Removing test files...
如果需要测试seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)等6种模式,并且还可能需要测试不同的线程和不同的文件块下磁盘的性能表现,这时,可以使用如下脚本达到测试目的。