CN111949482A - 一种基于线程负载的软件性能瓶颈指征方法及系统 - Google Patents
一种基于线程负载的软件性能瓶颈指征方法及系统 Download PDFInfo
- Publication number
- CN111949482A CN111949482A CN202010810468.2A CN202010810468A CN111949482A CN 111949482 A CN111949482 A CN 111949482A CN 202010810468 A CN202010810468 A CN 202010810468A CN 111949482 A CN111949482 A CN 111949482A
- Authority
- CN
- China
- Prior art keywords
- thread
- load
- time
- service request
- state
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
- G06F11/3423—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于线程负载的软件性能瓶颈指征方法及系统,所述方法包括:定义用于指示软件性能瓶颈的指标参数:线程负载;以及所述线程负载的测量流程;所述线程负载的测量流程包括以下两个并行的子流程:子流程1,负载值计算输出流程;子流程2,业务线程耗时测量流程,子流程1中输出到信息持久化设施的信息(tb,L)即为:在时间段(tb~tb+d)内线程的负载为L。本发明提出“线程负载”参数用于指佂软件性能瓶颈,相较于“软件响应时间”参数,其测量方法更简单,参数值也能更客观的反映软件的性能瓶颈;相较“CPU占用率”参数,在使用范围更宽广,适应性更强。
Description
技术领域
本发明涉及软件性能分析技术,提出了一种用于指征软件运行时达到性能瓶颈的指标参数和测量这种指标参数的方法,该测量方法输出的指标参数可应用于软件测试阶段为软件的性能标定提供评估依据,也可应用于软件的生产环境,为运维人员提供线上系统运行时务负载的数据,为系统的部署优化提供决策依据。
背景技术
在软件性能分析当中,通常通过对软件施加业务负载并观察软件是否达到性能瓶颈来确定软件的性能指标。这个测试过程有一个关键的信息需要获取,即软件是性能瓶颈指征参数,目前常用于指征软件性能瓶颈的参数有软件响应时间和CPU占用率。
其中软件响应时间是从软件使用者的角度观察到从发出操作请求到收到软件给出的响应之间的时间差。通常一套软件会存在多种不同的业务操作,实际实践中往往需要产品和开发人员一起来识别具有代表性的业务操作,用多个操作的延时参数来表征软件的性能瓶颈。而选用哪些操作和多大延时作为软件性能瓶颈的指标往往需要开发甚至产品的经验来确定,这个过程比较复杂,也不具备客观性。
CPU占用率是指单位时间内,操作系统调度软件到CPU上运行的时长与单位时长的比值,“CPU占用率”与软件具体的业务无关,可由操作系统测量并输出,因此在软件性能分析中被广泛运用。但是该参数存在使用上局限性,对于在业务处理过程中存在同步IO操作或网络操作(RPC)的软件来说,在性能性能测试时会出现被测试软件CPU占用率低,但是软件响应时间已超出业务正常范围的情况,因此该参数不具备普适性。
发明内容
为了解决背景技术所述缺陷,本发明提出一种更加高效更加具有普适性的用于指示软件运行时达到性能瓶颈的指标参数和测量这种指标参数的方法。
为实现以上目的,本发明采用以下技术方案:
一种基于线程负载的软件性能瓶颈指征方法,其包括:
定义用于指示软件性能瓶颈的指标参数:线程负载,线程的运行状态分为等待业务请求状态和处理业务请求状态,所述线程负载指的是:单位时长内线程处在处理业务请求状态的时长与单位时长的比值;
以及所述线程负载的测量流程;
所述线程负载的测量流程包括以下两个并行的子流程:
子流程1,负载值计算输出流程,包括以下步骤:
S1、设定负载测量的单位时长值d,启动时间间隔为d的循环触发定时器T;
S2、读取时钟得到测量周期开始时间tb;
S3、重置时长累计器A的累积值av为0;
S4、定时器T到时,执行以下步骤S6-S10;
S5、读取时长累计器A的值av;
S6、计算本测量周期内的线程负载值L:av/d;
S7、输出tb和L到信息持久化设施;
S8、读取时钟更新为测量周期开始时间tb;
S9、重置时长累计器A的累积值av为0;
S10、遵循定时器T周期性触发规则,重复执行步骤S4-S10;
子流程2,业务线程耗时测量流程,包括以下步骤:
S11、在线程由“等待业务请求状态”进入“处理业务请求状态”时读取时钟得到“处理业务请求状态”的开始时刻t0;
S12、在线程由“处理业务请求状态”进入“等待业务请求状态”时读取时钟获得“处理业务请求状态”的结束时刻t1;
S13、计算本次线程处于“处理业务请求状态”的时长dr:当tb>t0时,dr=t1-tb;否则,dr=t1-t0,所述tb为子流程1中设置的当前测量周期的开始时间;
S14、将dr送入时长累计器A进行累加,所述时长累计器A为子流程1中所创建;
S15、跟随线程的状态变换顺序重复步骤S11-S14;
子流程1中输出到信息持久化设施的信息(tb,L)即为:在时间段(tb~tb+d)内线程的负载为L。
作为优选,所述d值可根据需要任意设定。
一种用于实现上述基于线程负载的软件性能瓶颈指征方法的系统,包括:一个时钟,一个时长累计器,一个定时器以及一个信息持久化设施;
所述时钟用于:在线程由等待业务请求状态进入处理业务请求状态的软件逻辑点,被调用时钟获得等待状态的开始时刻t0,以及线程在处理完业务请求后,被调用获得下一个“等待状态”的开始时刻t1;
所述时长累计器用于对线程每次处于”处理业务请求状态”的时长dr进行累加并保存;
所述定时器用于触发周期性对内线程负载值L进行计算依据对负载信息进行保存;
所述信息持久化设施用于永久保存负载测量周期的起始时间tb以及负载值L。
所述时钟是一种能提供软件接口在其他软件内部调用获取实时时间的装置,该装置可由操作系统提供。
所述时长累计器是用于累加多个时间长度值并保存累加值的装置,该装置也提供累加值的读取和重置,即清零。
所述定时器是一种能在指定时间点或时间间隔触发特定事件的装置,该装置可由操作系统提供。
所述信息持久化设置是用于永久保存本测量方法测量所得线程负载信息设施,可以是磁盘文件也可以是数据库,也可以是其他。
相比现有技术,本发明的有益效果在于:
本发明提出“线程负载”参数用于指佂软件性能瓶颈,相较于“软件响应时间”参数,其测量方法更简单,参数值也能更客观的反映软件的性能瓶颈;相较“CPU占用率”参数,在使用范围更宽广,适应性更强。
附图说明
图1为本发明线程的原理图;
图2为本发明子流程1的原理图;
图3为本发明子流程2的原理图。
具体实施方式
下面结合具体实施方式对本发明作进一步详细说明。
本实施例提供一种基于线程负载的软件性能瓶颈指征方法,包括以下:
首先定义一种指示软件性能瓶颈的指标参数:线程负载,以及测量该指标参数的方法。
线程负载:软件被操作系统调度执行的基本单位是线程,软件中所有的业务逻辑需要编排到线程中执行。线程规划是软件设计的重要环节,本实施例不涉及该环节,仅针对已经规划好的软件线程。
如图1所示,本实施例将线程的运行状态分为两种:等待业务请求状态(下文简称“等待状态”)和“处理业务请求状态”(下文简称“处理状态”)。顾名思义,所述等待状态是指当前线程没有接收到任何业务请求,也没有未处理完的业务请求,处于侦听网络事件的状态,等待外部的下一个业务请求,处在被动的状态。所述处理状态是指线程至少存在一个未处理完的业务请求,其处在主动的状态。线程负载指的是,单位时长内线程处在处理状态的时长与单位时长的比值。根据线程负载定义可知,线程负载取值区间为[0-1],0表示线程在单位时间内无任何请求接收到,很空闲;1表示在单位时间内线程一直忙于处理业务请求,无法处理更多的业务请求,0和1之间的取值表示单位时间内线程即时完成了业务请求,可处理更多的业务请求。
线程负载的测量系统包括:一个时钟,一个时长累计器,一个定时器以及一个信息持久化设施。
其中时钟是一种能提供软件接口在其他软件内部调用获取实时时间的装置,该装置可由操作系统提供,但不限于此。时长累计器是累加多个时间长度值并保存累加值的装置,该装置也提供累加值的读取和重置,即清零。定时器是一种能指定时间点或时间间隔触发特定事件的装置,该装置可由操作系统。信息持久化设置是用于永久保存本测量方法测量所得线程负载信息设施,可以是磁盘文件也可以是数据库,也可以是其他。
线程负载测量流程包括两个子流程:
子流程1,负载值计算输出流程,该流程作为一个独立的线程编排到软件中,由软件的主线程启动,并设置较高的调度优先级,该新线程执行如下流程,如图2所示:
S1、设定负载测量的单位时长值d,启动时间间隔为d的循环触发定时器T;
S2、读取时钟得到测量周期开始时间tb;
S3、重置时长累计器A的累积值av为0;
S4、定时器T到时,执行以下步骤S6-S10;
S5、读取时长累计器A的值av;
S6、计算本测量周期内的线程负载值L:av/d;
S7、输出tb和L到信息持久化设施;
S8、读取时钟更新为测量周期开始时间tb;
S9、重置时长累计器A的累积值av为0;
S10、遵循定时器T周期性触发规则,重复执行步骤S4-S9;
子流程2,业务线程耗时测量流程,该流程需编排软件的被测量线程中执行,如图3所示:
S11、在线程由“等待业务请求状态”进入“处理业务请求状态”时读取时钟得到“处理业务请求状态”的开始时刻t0;
S12、在线程由“处理业务请求状态”进入“等待业务请求状态”时读取时钟获得“处理业务请求状态”的结束时刻t1;
S13、计算本次线程处于“处理业务请求状态”的时长dr:当tb>t0时,dr=t1-tb;否则,dr=t1-t0(注:tb为子流程1中设置的当前测量周期的开始时间);
S14、将dr送入时长累计器A进行累加(注:时长累计器A为子流程1中所创建);
S15、跟随线程的状态变换顺序重复步骤S11-S14;
子流程1中输出到信息持久化设施的信息(tb,L)即为:在时间段(tb~tb+d)内线程的负载为L。
本实施例提出的软件性能瓶颈指示参数具有测量方法简单,表征软件性能瓶颈实时准确的优点,能为软件测试人员评估软件性能提供客观准确的软件性能瓶颈指示参数,另外也能应用于软件生成环境,生成软件连续的运行时负载情况,帮助运维人员了解软件各时间点的负载规律,也可结合告警系统对达到性能瓶颈的软件及时进行告警,以更好的保障业务系统的持续稳定性。
Claims (6)
1.一种基于线程负载的软件性能瓶颈指征方法,其特征在于:其包括:
定义用于指示软件性能瓶颈的指标参数:线程负载,线程的运行状态分为“等待业务请求状态”和“处理业务请求状态”,所述线程负载指的是:单位时长内线程处于“处理业务请求状态”的时长与单位时长的比值;
以及所述线程负载的测量流程;
所述线程负载的测量流程包含以下两个并行的子流程:
子流程1,负载值计算输出流程,包括以下步骤:
S1、设定负载测量的单位时长值d,启动时间间隔为d的循环触发定时器T;
S2、读取时钟得到测量周期开始时间tb;
S3、重置时长累计器A的累积值av为0;
S4、定时器T到时,执行以下步骤S6-S10;
S5、读取时长累计器A的值av;
S6、计算本测量周期内的线程负载值L:av/d;
S7、输出tb和L到信息持久化设施;
S8、读取时钟更新为测量周期开始时间tb;
S9、重置时长累计器A的累积值av为0;
S10、遵循定时器T周期性触发规则,重复执行步骤S4-S9;
子流程2,业务线程耗时测量流程,包括以下步骤:
S11、在线程由“等待业务请求状态”进入“处理业务请求状态”时读取时钟得到“处理业务请求状态”的开始时刻t0;
S12、在线程由“处理业务请求状态”进入“等待业务请求状态”时读取时钟获得“业务请求处理状态”的结束时刻t1;
S13、计算本次线程处于“处理业务请求状态”的时长dr:当tb>t0时,dr=t1-tb;否则,dr=t1-t0,所述tb为子流程1中设置的当前测量周期的开始时间;
S14、将dr送入时长累计器A进行累加,所述时长累计器A为子流程1中所创建;
S15、跟随线程的状态变换顺序重复步骤S11-S14;
子流程1中输出到信息持久化设施的信息(tb,L)即为在时间段(tb~tb+d)内线程的负载为L。
2.一种用于实现权利要求1所述的基于线程负载的软件性能瓶颈指征方法的系统,其特征在于,包括:一个时钟,一个时长累计器,一个定时器以及一个信息持久化设施;
所述时钟用于:在线程由等待业务请求状态进入处理业务请求状态的软件逻辑点,被调用时钟获得等待状态的开始时刻t0,以及在处理业务请求状态结束后,被调用获得下一个“等待业务请求状态”的开始时刻t1,以及在定时器T启动时刻和定时器T到时时刻被调用获得一个测量周期的开始时刻tb;
所述时长累计器用于对线程每次处于”处理业务请求状态”的时长dr进行累加并保存;
所述定时器用于触发周期性对内线程负载值L进行计算依据对负载信息进行保存;
所述信息持久化设施用于永久保存负载测量周期的起始时间tb以及负载值L。
3.根据权利要求2所述的方法,其特征在于,所述时钟是一种能提供软件接口在其他软件内部调用获取实时时间的装置。
4.根据权利要求2所述的方法,其特征在于,所述时长累计器是用于累加多个时间长度值并保存累加值的装置,该装置也提供累加值的读取和重置,即清零。
5.根据权利要求2所述的方法,其特征在于,所述定时器是一种能在指定时间点或时间间隔触发特定事件的装置。
6.根据权利要求2所述的方法,其特征在于,所述信息持久化设置是用于永久保存本测量方法测量所得线程负载信息设施,可以是磁盘文件也可以是数据库,也可以是其他。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010810468.2A CN111949482B (zh) | 2020-08-13 | 2020-08-13 | 一种基于线程负载的软件性能瓶颈指征方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010810468.2A CN111949482B (zh) | 2020-08-13 | 2020-08-13 | 一种基于线程负载的软件性能瓶颈指征方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949482A true CN111949482A (zh) | 2020-11-17 |
CN111949482B CN111949482B (zh) | 2022-05-20 |
Family
ID=73332483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010810468.2A Active CN111949482B (zh) | 2020-08-13 | 2020-08-13 | 一种基于线程负载的软件性能瓶颈指征方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949482B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154860A1 (en) * | 2004-01-13 | 2005-07-14 | International Business Machines Corporation | Method and data processing system optimizing performance through reporting of thread-level hardware resource utilization |
CN101572641A (zh) * | 2009-05-26 | 2009-11-04 | 阴晓峰 | 基于can总线的控制器网络监控系统及监控方法 |
CN103246589A (zh) * | 2012-02-03 | 2013-08-14 | 京信通信系统(中国)有限公司 | 一种多线程的监控方法及装置 |
CN106469018A (zh) * | 2015-08-17 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 分布式存储系统的负载监控方法及设备 |
CN109246246A (zh) * | 2018-10-31 | 2019-01-18 | 成都知道创宇信息技术有限公司 | 一种中心化全自动服务发现负载均衡系统 |
CN109542731A (zh) * | 2018-11-28 | 2019-03-29 | 北京物资学院 | 一种面向gpu的层次递进下钻的性能监测方法 |
-
2020
- 2020-08-13 CN CN202010810468.2A patent/CN111949482B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154860A1 (en) * | 2004-01-13 | 2005-07-14 | International Business Machines Corporation | Method and data processing system optimizing performance through reporting of thread-level hardware resource utilization |
CN101572641A (zh) * | 2009-05-26 | 2009-11-04 | 阴晓峰 | 基于can总线的控制器网络监控系统及监控方法 |
CN103246589A (zh) * | 2012-02-03 | 2013-08-14 | 京信通信系统(中国)有限公司 | 一种多线程的监控方法及装置 |
CN106469018A (zh) * | 2015-08-17 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 分布式存储系统的负载监控方法及设备 |
CN109246246A (zh) * | 2018-10-31 | 2019-01-18 | 成都知道创宇信息技术有限公司 | 一种中心化全自动服务发现负载均衡系统 |
CN109542731A (zh) * | 2018-11-28 | 2019-03-29 | 北京物资学院 | 一种面向gpu的层次递进下钻的性能监测方法 |
Non-Patent Citations (1)
Title |
---|
丁林: "面向电信数据的分布式节点任务调度及负载均衡设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111949482B (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106156115B (zh) | 一种资源调度方法及装置 | |
US20120260260A1 (en) | Managing Job Execution | |
CN107463357B (zh) | 任务调度系统、调度方法、制动仿真系统及仿真方法 | |
CN102868573A (zh) | Web服务负载云测试方法和装置 | |
CN100501694C (zh) | 处理器利用率的测量装置及方法 | |
CN113468168A (zh) | 一种起重机械多源异构数据高速采集与处理软控制方法 | |
CN111949482B (zh) | 一种基于线程负载的软件性能瓶颈指征方法及系统 | |
CN1327352C (zh) | 一种实现嵌入式实时系统内存泄漏检测和定位的方法 | |
CN115034512A (zh) | 一种流程优化方法、系统、设备及计算机可读存储介质 | |
US6728957B1 (en) | Program response time estimating apparatus | |
WO2022111278A1 (zh) | 一种并发请求超时的诊断方法及装置、设备、存储介质 | |
CN114328122A (zh) | 一种io全生命周期时延监测方法及相关装置 | |
CN110287006A (zh) | 一种数据调度方法及系统 | |
CN117151445A (zh) | 一种电网调度知识图谱管理系统及其动态更新方法 | |
CN117114365A (zh) | 巡检任务管理方法、设备和可读存储介质 | |
Armony et al. | Asymptotically optimal appointment schedules | |
CN113722141B (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
US9027035B2 (en) | Non real-time metrology data management | |
CN115509868A (zh) | 节点耗时的预测方法、装置、设备及存储介质 | |
WO2014099138A1 (en) | Priority activation of metrology driver in boot sequence | |
CN103023701B (zh) | 网络管理系统中性能参数的分析方法及装置 | |
TW201039126A (en) | Method of monitoring system resource and electronic device capable of monitoring system resource | |
CN114727309A (zh) | 网络优化方法及设备 | |
CN111708670A (zh) | 实时操作系统中任务时间参数的确定方法、装置及车辆 | |
CN112381386A (zh) | 一种车辆稽查布控方法、装置、电子设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |