文章目录
sysbench介绍:
是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。
- cpu性能
- 磁盘io性能
- 内存分配及传输速度
- POSIX线程性能
- mutex互斥锁,调度程序性能
- 数据库性能(OLTP基准测试).(此文未做介绍)
安装sysbench
yum install sysbench
查看帮助命令
sysbench --test=fileio help
sysbench --test=cpu help
sysbench --test=memory help
sysbench --test=threads help
sysbench --test=mutex help
sysbench --test=oltp help
sysbench常规选项
--threads=N #指定线程数量,默认为1
--events=N #对事件的总数限制,默认为0,不限制
CPU测试:(求素数,指定一个最大值)
sysbench --test=cpu --cpu-max-prime=20000 run
IO测试:切忌读写文件最好要大于当前内存
#IO测试选项及参数介绍
--file-num=10 #创建多少个文件,这里是10个
--file-block-size=4k #单个IO块大小,这里是4k
--file-total-size=4g #创建的文件总大小,这里是4GB
--file-test-mode=seqwr #测试方式,这里是顺序写,可选参数( seqwr 顺序写, |seqrd 顺序读,| seqrewr 顺序读写,| rndwr 随机写,| rndrd 随机读,| rndrw随机读写 )
--file-io-mode=sync #文件操作模式,这里是(默认)同步,可选参数( sync 同步,| async 异步,| mmap )
--file-async-backlog=N #对应每个线程队列的异步操作数,默认为128
--file-extra-flags=STRING #additional flags to use on opening files {sync,dsync,direct} []
--file-fsync-freq=N #当请求数达到多少时执行fsync()刷新,默认100,0代表过程中不执行fsync()
--file-fsync-all=[on|off] #执行每一个写操作后执行fsync()刷新操作,默认关闭off
--file-fsync-end=[on|off] #测试结束执行fsync()操作,默认开启on
--file-fsync-mode=STRING #同步刷新方法,默认fsync {fsync, fdatasync}
--file-merged-requests=N #合并指定数量的IO请求,0代表不合并,默认0
--file-rw-ratio=N #读写比例,默认1.5
#IO测试实例(分准备prepare,运行run,清理cleanup三个步骤)
创建20个文件,共计2G大小,
sysbench --test=fileio --num-threads=2 --file-total-size=2g --file-test-mode=rndrw --file-num=20 --file-block-size=4k --file-io-mode=sync prepare
开始fileio测试(使用两个线程--num-threads=2)
sysbench --test=fileio --num-threads=2 --file-total-size=2g --file-test-mode=rndrw --file-num=20 --file-block-size=4k --file-io-mode=sync run
测试完成执行cleanup
sysbench --test=fileio --num-threads=2 --file-total-size=2g --file-test-mode=rndrw --file-num=20 --file-block-size=4k --file-io-mode=sync cleanup
内存测试
#内存测试选项及参数介绍
--memory-block-size=SIZE #测试内存块的大小,默认为1K
--memory-total-size=SIZE #数据传输的总大小,默认为100G
--memory-scope=STRING #内存访问的范围,包括全局和本地范围,默认为global
--memory-hugetlb=[on|off] #是否从HugeTLB池分配内存的开关,默认为off
--memory-oper=STRING #内存操作的类型,包括read, write, none,默认为write
--memory-access-mode=STRING #内存访问模式,包括seq顺序,rnd随机两种模式,默认为seq
#内存测试实例
#测试按4kB的块大小,顺序 写 200g所需时间
sysbench --test=memory --memory-block-size=4k --memory-total-size=200g --memory-oper=write --memory-access-mode=seq run
线程以及mutex互斥锁测试
线程测试选项及参数介绍
--thread-yields=N #每个请求执行“lock/yield/unlock”循环的次数,默认1000
--thread-locks=N #每个线程的互斥锁,默认8个
线程测试实例
sysbench --test=threads --thread-yields=1000 --thread-locks=8 run
mutex互斥锁测试,选项及参数介绍
--mutex-num=N #数组互斥的总大小。默认是4096
--mutex-locks=N #每个线程互斥锁的数量。默认是50000
--mutex-loops=N #内部互斥锁的空循环数量。默认是10000
mutex互斥锁测试实例
sysbench --test=mutex --mutex-num=4096 --mutex-locks=50000 --mutex-loops=10000 run
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论