性能测试工具sysbench使用篇

sysbench介绍:

是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。

  1. cpu性能
  2. 磁盘io性能
  3. 内存分配及传输速度
  4. POSIX线程性能
  5. mutex互斥锁,调度程序性能
  6. 数据库性能(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
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/128.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/12/3作者: 辣条①号

目标:网络规划设计师、系统工程师、ceph存储工程师、云计算工程师。 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录