一种基于sysbench的批量测试系统及其测试方法与流程

文档序号:20874863发布日期:2020-05-26 16:21阅读:193来源:国知局
一种基于sysbench的批量测试系统及其测试方法与流程
本发明涉及测试方法领域,具体涉及一种基于sysbench的对服务器实例进行测试的测试系统及其测试方法。
背景技术
:近几年来随着科学技术的不断成熟和演进,和行业性的广泛深化应用,云计算技术被更多的用户认可和青睐。随之应运而生的云产品也不断增多。作为用户能够根据自身的需求正确的选择相应的产品显得尤为重要。对云计算相关产品进行有效的系统测评将为用户的选择提供有力的借鉴。目前对服务器性能系统测试工具主要存在以下几个方面的不足:(1)测试指标单一:目前大多数测试工具一次只能测试一个方面的性能,如对cpu进行测试时候,无法同时对事务数(events),线程数(threads),素数(prime)prime同时进行测试,指标相对较单一;(2)测试参数无法进行梯度测试:为了提高测试结果的可靠性,以及获取系统性能的临界值,需要根据不同的参数值进行梯度测试。目前测试工具缺少梯度测试功能。(3)测试结果缺少统计和可视化输出:对于测试报告结果,目前测试工具大多都是纯文本输出,缺少对多次测试的结果统计和可视化图表。技术实现要素:为了克服现有技术的上述缺陷,本发明的目的之一在于提供一种基于sysbench的批量测试。本发明的目的之二在于提供所述基于sysbench的批量测试系统的测试方法。为了实现本发明的目的之一,所采用的技术方案是:一种基于sysbench的批量测试系统,包括如下模块:第一模块为cpu测试模块,所述cpu测试模块包括:测试事务数、最大素数和线程数三个子模块,所述三个模块之间无依赖关系,相互可以独立运行,也可以任意组合同时运行;第二模块为io测试模块,所述io测试模块包括:文件大小、线程数测试两个子模块;所述两个子模块之间无依赖关系,相互可以独立运行,也可以任意组合同时运行;第三模块为线程测试模块,所述线程测试模块包括:单个请求的线程数压力、单个线程锁数量、线程数量测试三个子模块;所述三个子模块之间无依赖关系,相互可以独立运行,也可以任意组合同时运行;第四模块为内存测试模块,所述内存测试模块包括:内存块大小、数据传输总大小测量两个子模块;所述两个模块之间无依赖关系,相互可以独立运行,也可以任意组合同时运行;第五模块为mutex调度程序测试模块,所述mutex调度程序测试模块包括:数组互斥总大小测量、内部互斥锁的空循环数量测量、线程互斥锁数量测量及线程测量四个子模块;所述四个模块之间无依赖关系,相互可以独立运行,也可以任意组合同时运行。为了实现本发明的目的之二,所采用的技术方案是:一种基于sysbench的批量测试系统的测试方法,包括如下步骤:cpu测试步骤:当选择cpu测试模块后,可以进行事务数、最大素数、线程数三大模块的测试。当设置相应参数后,三个模块可以独立运行,也可以同时运行,不存在相互依赖关系;所述的事务数测试为:默认测试数值为10n{n|0<n≤n,n∈z,ndef=4},依次根据n值的变化进行梯度测试;所述的最大素数测试为:默认测试数值为10n{n|0<n≤n,n∈z,ndef=6},依次根据n值的变化进行梯度测试;所述的线程数测试为:默认测试数值为2n{n|0≤n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试;io测试步骤:当选择io测试模块后,可以进行文件大小、线程数二大模块的测试。当设置相应参数后,两个模块可以独立运行,也可以同时运行,不存在相互依赖关系;所述的文件大小测试为:默认测试数值为n{n|0<n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试;所述的线程数测试为:默认测试数值为2n{n|0≤n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试。线程测试步骤:当选择线程测试模块后,可以进行单个请求的线程数压力测试、单个线程锁的数量测试,以及线程数三大模块的测试。当设置相应参数后,三个模块可以独立运行,也可以同时运行,不存在相互依赖关系。所述的单个请求的线程数压力测试为:默认测试数值为n{n|0<n≤n,n∈z,ndef=6},依次根据n值的变化进行梯度测试;所述的单个线程锁的数量测试为:默认测试数值为10n{n|0≤n≤n,n∈z,ndef=5},依次根据n值的变化进行梯度测试;所述的线程数测试为:默认测试数值为2n{n|0≤n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试;内存测试步骤:当选择内存测试模块后,可以进行内存块大小测试、传输数据大小测试。当设置相应参数后,两个模块可以独立运行,也可以同时运行,不存在相互依赖关系;所述的内存块大小测试为:默认测试数值为n{n|0≤n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试;所述的传输数据大小测试为:默认测试数值为10n{n|0≤n≤n,n∈z,ndef=4},依次根据n值的变化进行梯度测试;mutex调度程序测试步骤:互斥锁主要用于实现内核中的互斥访问功能,或者说系统调度功能。当选择mutex测试模块后,可以进行数组互斥大小测试、内部互斥锁的空循环数量测试、线程数量测试、单线程互斥锁数量测试;当设置相应参数后,四个模块可以独立运行,也可以同时运行,不存在相互依赖关系;所述的数组互斥总大小测试为:默认测试数值为1024*n{n|1≤n≤n,n∈z,ndef=10},依次根据n值的变化进行梯度测试;所述的内部互斥锁的空循环数量测试为:默认测试数值为10n{n|0≤n≤n,n∈z,ndef=6},依次根据n值的变化进行梯度测试;所述的单线程互斥锁数量测试为:默认测试数值为10n{n|0≤n≤n,n∈z,ndef=5},依次根据n值的变化进行梯度测试;所述的线程数量测试为:默认测试数值为2n{n|0≤n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试;测试结果汇总步骤:将同一指标的批量测试结果进行汇总。在本发明的一个优选实施例中,所述的测试结果汇总具体包括:根据梯度测试结果,分别提取“cpuspeed”,“generalstatistics”,“latency”,“threadsfairness”对应的测试指标信息对所述cpu测试的结果进行汇总;根据梯度测试结果,分别提取“fileoperations”,“throughput”,“generalstatistics”,“latency”,“threads”对应的测试指标信息对所述io测试的结果进行汇总;根据梯度测试结果,分别提取“cpuspeed”,“generalstatistics”,“latency”,“threadsfairness”对应的测试指标信息对所述线程测试的结果进行汇总;根据梯度测试结果,分别提取“generalstatistics”,“latency”,“threads”对应的测试指标信息对所述内存测试的结果进行汇总;根据梯度测试结果,分别提取“generalstatistics”,“latency”,“threads”对应的测试指标信息对所述mutex调度程序测试的结果进行汇总;将上述测试统计结果进行分类统计作图,对于多个样品的测试结果,对各自的统计结果先进行合并汇总,然后分别输出条形图盒折线图。本发明的有益效果在于:与现有的单一测试相比,本发明的测试结果更加丰富和可视化。附图说明图1为本发明的流程示意图。图2为cpu测试流程图。图3为io测试流程图。图4为线程测试流程图。图5为内存测试流程图。图6为mutex测试流程图。图7为可视化步骤流程图1。图8为测试结果对比统计图1。图9为测试结果对比统计图2。图10为测试结果对比统计图3。图11为测试结果对比统计图4。具体实施方式本发明的主要原理在于:本发明主要基于单一变量控制原则,对单一变量值进行梯度变值处理,从而得到一系列不同指标不同参数值的系统测试结果。本实例针对2台4c8g服务器实例进行cpu和io进行测试:cpu测试步骤根据梯度测试结果,分别提取“cpuspeed”,“generalstatistics”,“latency”,“threadsfairness”对应的测试指标信息进行汇总,如下表1、2、3所示。表1:#events表2:#primeitem101001000100001000001000000eventspersecondtotaltimeavg95thpercentileeventsavg表3:#threadsitem1248163264128256eventspersecondtotaltimeavg95thpercentileeventsavgio测试步骤:根据梯度测试结果,分别提取“fileoperations”,“throughput”,“generalstatistics”,“latency”,“threads”对应的测试指标信息进行汇总,如下表4、5所示。表4:#size表5:#threadsitem1248163264128256reads/swrites/sfsyncs/stotaltimeavg95thpercentileeventsavgread,mib/swritten,mib/s线程测试步骤:根据梯度测试结果,分别提取“cpuspeed”,“generalstatistics”,“latency”,“threadsfairness”对应的测试指标信息进行汇总,如下表6、7、8所示。表6:#locksitem12481632totaltimeavg95thpercentileeventsavg表7:#threads表8:#yieldsitem101001000100001000001000000totaltimeavg95thpercentileeventsavg内存测试步骤:根据梯度测试结果,分别提取“generalstatistics”,“latency”,“threads”对应的测试指标信息进行汇总,如下表9、10所示。表9:#blockitem1248163264128256totaltimeavg95thpercentileeventsavg表10:#sizeitem110100100010000totaltimeavg95thpercentileeventsavgmutex调度程序测试步骤:根据梯度测试结果,分别提取“generalstatistics”,“latency”,“threads”对应的测试指标信息进行汇总,如下表11、12、13、14所示。表11:#locks表12:#loops表13:#num表14:#threadsitem1248163264128256totaltimeavg95thpercentileeventsavg测试结果可视化步骤:将上述测试统计结果进行分类统计作图,对于多个样品的测试结果,对各自的统计结果先进行合并汇总,然后分别输出条形图盒折线图。cpu测试示例当选择cpu测试模块后,可以进行事务数、最大素数、线程数三大模块的测试。如测试开启的线程数对cpu测试的影响,本发明将固定其他两个变量,即设置其他两个变量为常量,将线程数量设置为梯度值,由此得到不同的线程数量对cpu性能测试的影响。事务数测试:默认测试数值为10n{n|0<n≤n,n∈z,ndef=4},依次根据n值的变化进行梯度测试,则值依次为10,100,1000,10000;最大素数测试:默认测试数值为10n{n|0<n≤n,n∈z,ndef=6},依次根据n值的变化进行梯度测试,则值为10,100,1000,10000,100000,1000000;线程数测试:默认测试数值为2n{n|0≤n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试,则线程数量依次设置为2、4、8、16、32、64、128、256。测试得出的结果统计表格如下所示:表15、16、17:实例a测试结果表15:#events表16:#prime表17:#threads实例b测试结果如表18、19、20所示。表18:#events表19:#prime表20:#threads测试结果对比统计图如图8、图9所示:io测试步骤:当选择io测试模块后,可以进行文件大小、线程数二大模块的测试。本发明实施示例对实例的文件大小进行读写测试,及线程数进行设置。文件大小测试:默认测试数值为n{n|0<n≤n,n∈z,ndef=8},依次根据n值的变化进行梯度测试,本实施例中依次去1,2,3,4,5,6,7,8。线程数测试:默认测试数值为2n{n|0≤n≤n,n∈z,ndef=8},本实施例中线程数依次为1,2,4,8,16,32,64,128,256。测试得出的结果统计表格如下所示:实例a测试结果如表21、22所示。表21:#size表22:#threads实例b测试结果如表23、24所示。表23:#size表24:#threads测试结果对比统计图如图10、11所示。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1