sysbench 是一个非常经典的综合性能测试工具,通常都用它来做数据库的性能压测,但也可以用来做CPU,IO的性能测试。而对于IO测试,不是很推荐sysbench,倒不是说它有错误,工具本身没有任何问题,它的测试方法导致测试的数据会让人有些困惑:性能数据到底是不是这样呢,跟云厂商承诺的性能有关系嘛。一般我们都用FIO来进行性能测试,云厂商都推荐用FIO进行性能测试,通过FIO性能测试,都能轻易达到云厂商承诺的性能。
插曲:关于sysbench的版本,现在主要有0.4.12和1.0.版本。截止2006年sysbench好长时间没有发展,2017年之前都是用旧版本0.4.12(所以网上一搜一大堆文章都是0.4.的教程),然后作者估计修了几个bug,变成0.5版本,然后就跟过去做了告别,从2017重新开发了一个新版本sysbench 1.0.*,这里讲述的性能测试都是用了最新版。
1. sysbench fileio测试
言归正传,sysbench怎么做IO的性能测试呢,sysbench fileio help
,参数如下:
#/usr/local/sysbench_1/bin/sysbench fileio help
sysbench 1.0.9 (using bundled LuaJIT 2.1.0-beta2)
fileio options:
--file-num=N number of files to create [128]
--file-block-size=N block size to use in all IO operations [16384]
--file-total-size=SIZE total size of files to create [2G]
--file-test-mode=STRING test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw}
--file-io-mode=STRING file operations mode {sync,async,mmap} [sync]
--file-async-backlog=N number of asynchronous operatons to queue per thread [128]
--file-extra-flags=STRING additional flags to use on opening files {sync,dsync,direct} []
--file-fsync-freq=N do fsync() after this number of requests (0 - don't use fsync()) [100]
--file-fsync-all[=on|off] do f