CN107368416A - 一种Unix系统性能测试方法 - Google Patents

一种Unix系统性能测试方法 Download PDF

Info

Publication number
CN107368416A
CN107368416A CN201710605472.3A CN201710605472A CN107368416A CN 107368416 A CN107368416 A CN 107368416A CN 201710605472 A CN201710605472 A CN 201710605472A CN 107368416 A CN107368416 A CN 107368416A
Authority
CN
China
Prior art keywords
test
scheme
testing
system performance
unix system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710605472.3A
Other languages
English (en)
Inventor
左聪越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710605472.3A priority Critical patent/CN107368416A/zh
Publication of CN107368416A publication Critical patent/CN107368416A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种Unix系统性能测试方法,具体包括以下步骤:选择测试方案;设置测试次数,设置测试参数;执行性能测试;处理并输出测试结果。本发明技术方案中的一种技术方案可复用,降低测试成本,丰富测试方法,可以配置不同方案使用UnixBench对Unix系统进行性能测试。

Description

一种Unix系统性能测试方法
技术领域
本发明涉及系统性能测试技术领域,具体地说是一种Unix系统性能测试方法。
背景技术
随着Unix系统的发展和普及,受到越来越多人们的青睐,但是由于Unix系统的版本众多,性能各异,如何选择合适自己使用的最佳版本也成为困扰人们的问题,因此Unix操作系统性能测试重要性不言而寓。
目前,大多数的Unix操作系统性能测试均利用Unixbench这一工具来实现,Unixbench是一款开源的测试Unix系统基本性能的工具。是比较通用的测试VPS性能的工具。UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器。测试系统各个方面一系列的性能,然后将每个测试结果和一个基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值。
UnixBench仅提供了简单的测试参数,测试局限性大。如果重复测试,不能处理多次测试结果。
发明内容
本发明的目的在于提供一种Unix系统性能测试方法,用于解决Unix系统性能测试在重复测试时,不能处理多次测试结果的问题。
本发明解决其技术问题所采取的技术方案是:一种Unix系统性能测试方法,其特征是,具体包括以下步骤:
选择测试方案;
设置测试次数,设置测试参数;
执行性能测试;
处理并输出测试结果。
进一步地,上述步骤的执行环境是在UnixBench工具下;自动检测UnixBench工具是否安装,其具体方式包括:判断是否存在UnixBench目录,如果不存在,则解压源码包,编译并安装UnixBench工具。
进一步地,所述选择测试方案具体包括:输入测试方案;检查测试方案是否正确,若是,则执行下一步操作;若否,则继续输入测试方案。
进一步地,所述测试方案包括自定义方案、常用方案1、常用方案2、常用方案3;所述自定义方案为按需求自由配置线程数;所述常用方案1为测试CPU单线程时系统性能情况;所述常用方案2为通过lscpu读出当前CPU在线所有核数,即测试多线程时系统性能情况;所述常用方案3为在执行单线程测试后执行多线程测试。
进一步地,设置测试次数,设置测试参数具体包括:
输入测试次数;
检查测试次数是否正确,若正确,则执行测试参数设置;否则,继续输入测试次数;
调用perf_set函数设置测试参数。
进一步地,所述检查次数是否正确具体为:检查次数如果大于0,则表示正确,否则,表示错误。
进一步地,所述测试参数用于调用测试方案,当输入为空时,调用自定义方案;当输入为1时,则调用常用方案1;当输入为2时,则调用常用方案2;当输入为3时,则调用常用方案3。
进一步地,所述执行性能测试具体包括:
调用perf_set函数输入测试参数;
调用perf_test函数执行UnixBench性能测试;
按照输入的测试次数,多次测试;
每次测试后sleep 30s。
进一步地,所述处理并输出测试结果具体包括:
根据性能测试结果通过grep指令、awk指令匹配出总得分值;
通过累加多次测试总得分值除以测试次数得到平均值;
添加表头;
生成表头数列数据;
将表头和表头数列数据合并得出测试结果;
将测试结果加上时间戳,防止多次测试结果被覆盖。
进一步地,将测试结果加上时间戳的具体方式包括:将测试结果的目录重新命名,命名后的名称包含当前时刻。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、通过自动检测是否已安装测试工具,在未安装时自动安装,节约时间,简化手工操作。
2、通过提供的四种测试方案,自定义方案可根据需求自由配置测试参数,使用更灵活;常用方案1至3为固定方案,测试参数为常用的配置,无需输入测试参数,节约时间,简化手工操作。同时利用指定测试次数,在一次配置后可以重复测试多次,更符合实际测试应用。
3、自动执行测试,节约时间,简化手工操作。
4、通过自动处理测试结果这一环节,保留UnixBench工具原始测试结果,对多次测试结果取均值,解决了传统性能测试之后还要手工统计结果的状况,节约时间,简化手工操作。
附图说明
图1为本发明实施例的方法流程示意图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
测试脚本自动检测UnixBench工具是否安装,其具体方式包括:判断是否存在UnixBench目录,如果不存在,则解压源码包,编译并安装UnixBench工具。
如图1所示,一种Unix系统性能测试方法,具体包括以下步骤:
选择测试方案;设置测试次数,设置测试参数;执行性能测试;处理并输出测试结果。
选择测试方案具体包括:输入测试方案;检查测试方案是否正确,若是,则执行下一步操作;若否,则继续输入测试方案。
测试方案包括自定义方案、常用方案1、常用方案2、常用方案3;所述自定义方案为按需求自由配置线程数;常用方案1为测试CPU单线程时系统性能情况;常用方案2为通过lscpu读出当前CPU在线所有核数,即测试多线程时系统性能情况;常用方案3为在执行单线程测试后执行多线程测试。
设置测试次数,设置测试参数具体包括:
输入测试次数;
检查测试次数是否正确,若正确,则执行测试参数设置;否则,继续输入测试次数;
调用perf_set函数设置测试参数。
检查次数是否正确具体为:检查次数如果大于0,则表示正确,否则,表示错误。其程序可如下所示:
测试参数用于调用测试方案,当输入为空时,调用自定义方案;当输入为1时,则调用常用方案1;当输入为2时,则调用常用方案2;当输入为3时,则调用常用方案3。
执行性能测试具体包括:
调用perf_set函数输入测试参数;调用perf_test函数执行UnixBench性能测试;按照输入的测试次数,多次测试;每次测试后sleep 30s。
调用perf_set函数设置测试参数,设置标准如下:
如果输入为空时,则测试方案选择自定义方案,则按需求自由配置线程数。
如果输入为1,则选择常用方案1。即Unixbench工具执行时-c参数值为1,测试CPU单线程时系统性能情况。
如果输入为2,则选择常用方案2。通过lscpu读出当前CPU在线所有核数,即Unixbench工具执行时-c参数值为当前CPU在线所有核数,测试多线程时系统性能情况。
如果输入为3,则选用常用方案3。即在执行完方案1单线程测试后执行方案2多线程测试。
处理并输出测试结果具体包括:
根据性能测试结果通过grep指令、awk指令匹配出总得分值;通过累加多次测试总得分值除以测试次数得到平均值;添加表头;生成表头数列数据;将表头和表头数列数据合并得出测试结果;将测试结果加上时间戳,防止多次测试结果被覆盖。
匹配总得分值和平均值的程序可如下所示:
cat$LSTRESULT/origin_result|grep"Index Score"|awk'{print$5}'>>$LSTRESULT/Index_Score_data#匹配出多次测试结果中的总得分值到Index_Score_data文件中。
cat$LSTRESULT/Index_Score_data|awk'{sum+=$1}END{print sum/NR}'>>$LSTRESULT/read_data#计算多次读性能均值,追加Index_Score_data中。
表头数列数据包括每一个性能测试的总得分值和所有性能测试的平均值。
将测试结果加上时间戳的具体方式包括:将测试结果的目录重新命名,命名后的名称包含当前时刻,是为了防止多次测试结果被覆盖。其程序代码可如下所示:
mv$LSTROOT/result$LSTROOT/result_`date+%Y-%m-%d_%T`#将“result”目录重命名为“result_当前时间”。
本发明提供一个输出测试结果的实施例:
可看出,NO.1性能测试的总得分值为1110.5,NO.2性能测试的总得分值为1115.4,NO.3性能测试的总得分值为1120.7,各项性能测试的平均值为1115.5。输出结果的目录名称为result_2017-07-03_17:13:49,结果文件名称为final_result。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

Claims (10)

1.一种Unix系统性能测试方法,其特征是,具体包括以下步骤:
选择测试方案;
设置测试次数,设置测试参数;
执行性能测试;
处理并输出测试结果。
2.根据权利要求1所述的一种Unix系统性能测试方法,其特征是,上述步骤的执行环境是在UnixBench工具下;自动检测UnixBench工具是否安装,其具体方式包括:判断是否存在UnixBench目录,如果不存在,则解压源码包,编译并安装UnixBench工具。
3.根据权利要求1所述的一种Unix系统性能测试方法,其特征是,所述选择测试方案具体包括:输入测试方案;检查测试方案是否正确,若是,则执行下一步操作;若否,则继续输入测试方案。
4.根据权利要求3所述的一种Unix系统性能测试方法,其特征是,所述测试方案包括自定义方案、常用方案1、常用方案2、常用方案3;所述自定义方案为按需求自由配置线程数;所述常用方案1为测试CPU单线程时系统性能情况;所述常用方案2为通过lscpu读出当前CPU在线所有核数,即测试多线程时系统性能情况;所述常用方案3为在执行单线程测试后执行多线程测试。
5.根据权利要求1所述的一种Unix系统性能测试方法,其特征是,设置测试次数,设置测试参数具体包括:
输入测试次数;
检查测试次数是否正确,若正确,则执行测试参数设置;否则,继续输入测试次数;
调用perf_set函数设置测试参数。
6.根据权利要求5所述的一种Unix系统性能测试方法,其特征是,所述检查次数是否正确具体为:检查次数如果大于0,则表示正确,否则,表示错误。
7.根据权利要求5所述的一种Unix系统性能测试方法,其特征是,所述测试参数用于调用测试方案,当输入为空时,调用自定义方案;当输入为1时,则调用常用方案1;当输入为2时,则调用常用方案2;当输入为3时,则调用常用方案3。
8.根据权利要求2所述的一种Unix系统性能测试方法,其特征是,所述执行性能测试具体包括:
调用perf_set函数输入测试参数;
调用perf_test函数执行UnixBench性能测试;
按照输入的测试次数,多次测试;
每次测试后sleep 30s。
9.根据权利要求1所述的一种Unix系统性能测试方法,其特征是,所述处理并输出测试结果具体包括:
根据性能测试结果通过grep指令、awk指令匹配出总得分值;
通过累加多次测试总得分值除以测试次数得到平均值;
添加表头;
生成表头数列数据;
将表头和表头数列数据合并得出测试结果;
将测试结果加上时间戳,防止多次测试结果被覆盖。
10.根据权利要求9所述的一种Unix系统性能测试方法,其特征是,将测试结果加上时间戳的具体方式包括:将测试结果的目录重新命名,命名后的名称包含当前时刻。
CN201710605472.3A 2017-07-24 2017-07-24 一种Unix系统性能测试方法 Pending CN107368416A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710605472.3A CN107368416A (zh) 2017-07-24 2017-07-24 一种Unix系统性能测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710605472.3A CN107368416A (zh) 2017-07-24 2017-07-24 一种Unix系统性能测试方法

Publications (1)

Publication Number Publication Date
CN107368416A true CN107368416A (zh) 2017-11-21

Family

ID=60308416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710605472.3A Pending CN107368416A (zh) 2017-07-24 2017-07-24 一种Unix系统性能测试方法

Country Status (1)

Country Link
CN (1) CN107368416A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090199160A1 (en) * 2008-01-31 2009-08-06 Yahoo! Inc. Centralized system for analyzing software performance metrics
CN104850479A (zh) * 2015-05-15 2015-08-19 浪潮电子信息产业股份有限公司 一种基于fio的硬盘自动化测试方法
CN105843716A (zh) * 2016-04-01 2016-08-10 浪潮电子信息产业股份有限公司 一种基于mltt的io功能测试方法
CN106776337A (zh) * 2016-12-29 2017-05-31 北京金山安全软件有限公司 一种性能分析方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090199160A1 (en) * 2008-01-31 2009-08-06 Yahoo! Inc. Centralized system for analyzing software performance metrics
CN104850479A (zh) * 2015-05-15 2015-08-19 浪潮电子信息产业股份有限公司 一种基于fio的硬盘自动化测试方法
CN105843716A (zh) * 2016-04-01 2016-08-10 浪潮电子信息产业股份有限公司 一种基于mltt的io功能测试方法
CN106776337A (zh) * 2016-12-29 2017-05-31 北京金山安全软件有限公司 一种性能分析方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US9389849B2 (en) Test case pattern matching
Rothermel et al. An empirical study of the effects of minimization on the fault detection capabilities of test suites
US8756460B2 (en) Test selection based on an N-wise combinations coverage
US20070016829A1 (en) Test case generator
US10509719B2 (en) Automatic regression identification
Polo Usaola et al. Reduction of test suites using mutation
CN106326112B (zh) 一种程序作业自动批改的方法和装置
KR20150007806A (ko) 멀티스레드 프로그램에 대한 테스트 커버리지 정보를 이용한 자동 테스트 생성 장치, 방법 및 기록매체
Bruntink et al. Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations
Hong et al. The impact of concurrent coverage metrics on testing effectiveness
US11119899B2 (en) Determining potential test actions
Madiraju et al. Paraµ--A Partial and Higher-Order Mutation Tool with Concurrency Operators
CN107368416A (zh) 一种Unix系统性能测试方法
CN108874662A (zh) 测试方法和存储程序的非暂态计算机可读介质
US8464103B2 (en) Generating a functional coverage model from a trace
JP2009230420A (ja) ソースコード品質管理装置
CN103699482B (zh) 控件合理性检测方法和装置
US9436587B2 (en) Test context generation
CN110321144A (zh) 下线源代码的识别方法、装置、设备及存储介质
US6539498B1 (en) Method of detecting cause of failure in computer
CN112612701B (zh) 一种程序故障定位方法、装置、设备及可读存储介质
Sinaga Branch coverage based test case prioritization
Zhang et al. Structured dynamic program slicing
Dúlaigh et al. Measurement of exception-handling code: An exploratory study
Liu et al. UCBench: A user-centric benchmark suite for C code static analyzers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20171121

RJ01 Rejection of invention patent application after publication