如何进行sysbench的框架实现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sysbench是一个非常经典的综合性能测试工具,它支持CPU,IO,内存,尤其是数据库的性能测试。那它是怎么做到通用性的呢,总结一句话是大量运用了重载的方法。sysbench是一个总体框架,它用来操作各个测性能的计算,那各个部门只需要做的一件事情是声明需要的实现。只要理解了这三个struct就可以了:拿最简单的CPU性能计算举例,它需要实现的是:看到这个后,把一个case需要做的事情描述很清楚了,从需要什么参数,到初始化,逐个event执行,函数定义很清晰。sysbench的其他case也都这样需要一个完整的结构说明,如io操作,则需要多一个case的prepare和cleandown声明。
那sysbench的完整流程是怎样呢?黄色部分是测试用例需要实现的。
cdn.com/5203d6c360f30a87864cb807a45b43890f2b481c.png”>至此,可以清晰地看到sysbench的框架还是非常好理解。
上面struct里面有个event概念,不同的测试event的定义都不一样:比如CPU的测试case,一个event是完成求得小于某数(默认10000)的所有质数。比如fileio的测试case,一次read或者一次write操作就是一个event。worker_thread具体实现是怎样呢:欣赏下sysbench.c里面某子线程是如何执行的,代码非常清晰易懂:intermediate_report线程:周期性输出性能数据,参数项为:--report-interval=N
,对CPU的测试用例举例:sysbench cpu --report-interval=1
,截取部分输出结果如下:每一秒输出一个结果,eps是每一秒的event数,lat单位是毫秒,95分位延迟数据是1.08checkpoints_report线程:如果嫌周期性输出不够多,那么可以在某几个时间点整体输出,参数项为:--report-checkpoints=开发云主机域名[LIST,...]
还是对CPU测试用例举例:sysbench cpu --report-checkpoints=3,8 run
,截取部分输出结果如下:tx_rate_controll线程,控制每秒输出量的一个线程:参数项为:--rate=N
,默认是不做控制的。
还是拿CPU测试用例举例,控制每秒跑10个event:sysbench cpu run --rate=10
,截取部分输出结果如下:输出速率控制在哪里呢?眼尖的人马上可以看到是在sb_more_events
函数。那sb_more_events
函数主要是做什么呢:判断是否超时,默认是10秒判断是否到达最大event数,如果设置了的话就是速率控制。综上,大概介绍了sysbench框架的总体实现。看完上述内容,你们掌握如何进行sysbench的框架实现的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注开发云行业资讯频道,感谢各位的阅读!
如何使用Weave网络,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。weave 是 Weaveworks 开发的容器网络解决方案。weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来。对…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。