CN111124791A - 一种***测试方法及装置 - Google Patents
一种***测试方法及装置 Download PDFInfo
- Publication number
- CN111124791A CN111124791A CN201911244071.5A CN201911244071A CN111124791A CN 111124791 A CN111124791 A CN 111124791A CN 201911244071 A CN201911244071 A CN 201911244071A CN 111124791 A CN111124791 A CN 111124791A
- Authority
- CN
- China
- Prior art keywords
- server
- resource utilization
- utilization rate
- stack
- target server
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种***测试方法及装置,其中,方法包括:性能测试装置对被测***所在的至少一个服务器进行性能测试,在性能测试过程中,获取至少一个服务器的运行参数,然后根据运行参数,从至少一个服务器中确定目标服务器,并对目标服务器上的被测***进行堆栈采集。再根据堆栈采集结果进行性能问题分析,最终生成被测***的性能测试结果和性能问题分析结果。该方法用以解决现有***的测试效率低,***故障定位不及时的问题。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种***测试方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,性能测试技术也不例外,由于金融行业的安全性、实时性要求,用户对金融***的要求也越来越高,对***的性能测试技术也提出更高的要求。目前在对***进行性能测试得到性能测试结果后,主要使用第三方分析装置重新再对***的性能问题进行分析,所以存在测试效率低,***故障定位不及时的问题。
因此,亟需一种可以克服上述问题的***测试方法及装置。
发明内容
本发明实施例提供一种***测试方法及装置,用以解决现有***的测试效率低,***故障定位不及时的问题。
第一方面,本发明实施例提供一种***测试方法,该方法包括:
对被测***所在的至少一个服务器进行性能测试,然后在性能测试过程中,获取所述至少一个服务器的运行参数,进一步地,根据该运行参数,从所述至少一个服务器中确定目标服务器。进一步地,对该目标服务器上的被测***进行堆栈采集,并根据堆栈采集结果进行性能问题分析,生成所述被测***的性能测试结果和性能问题分析结果。
本发明实施例中,首先启动上述各个服务器对应的***进行性能测试,然后通过各个服务器的运行参数确定出资源使用率最高的服务器作为目标服务器,再对目标服务器上对应的被测***进行堆栈采集并分析,不仅克服了现有技术中存在的问题,提高被测***性能问题分析的效率,还可以实现被测***故障位置快速定位。
在一种可能的设计中,根据运行参数,从至少一个服务器中确定目标服务器,包括:针对任一服务器,根据服务器的运行参数,计算该服务器的资源使用率,然后从至少一个服务器中筛选出资源使用率符合预设指标的服务器,作为目标服务器。
本发明实施例中,根据各个服务器的资源使用率选择目标服务器,保证了所选目标服务器是最具有代表性的服务器。
在一种可能的设计中,该运行参数包括单位时间内的***负载、CPU使用率、内存使用率或网络使用率中的至少一项;进一步地,所述根据服务器的运行参数,通过预设的资源使用率公式计算该服务器的资源使用率,预设的资源使用率公式为:
R_U=L_ONE×K1+CPU_U×K2+M_U×K3+Net_U×K4
其中,R_U表示服务器的资源使用率,L_ONE表示服务器的单位时间内的***负载,K1表示单位时间内的***负载的权重,CPU_U表示服务器的CPU使用率,K2表示CPU使用率的权重,M_U表示服务器的内存使用率,K3表示内存使用率的权重,NET_U表示服务器的网络使用率,K4表示网络使用率的权重。
本发明实施例中,根据公式分别计算上述服务器的资源使用率,然后将资源使用率最大的服务器作为目标服务器。这样可以保证选择一个具有代表性的服务器作为目标服务器,所以该目标服务器上被测***进行性能测试后得到的性能测试结果和性能问题分析结果是最可靠和最具有参考价值的。
在一种可能的设计中,预设指标包括:目标服务器的资源使用率为正在进行性能测试的所述被测***所在的全部服务器的资源使用率中的最大值,或者该目标服务器的资源使用率大于设定阈值。
本发明实施例中,通过选择资源使用率最大的服务器作为目标服务器,或选择资源使用率达到设定阈值的服务器作为目标服务器,达到了筛选出最具有代表性的服务器的目的。这样,后续步骤中目标服务器的被测***性能测试的堆栈采集数据是最具有代表性和可靠性的。
在一种可能的设计中,对该目标服务器上的被测***进行堆栈采集,并根据所述堆栈采集结果进行性能问题分析,包括:在多个随机选择的时间点上对该目标服务器上的被测***进行堆栈采集。进一步地,将该多个时间点的堆栈采集结果进行对比分析,生成性能问题分析结果。
本发明实施例中,通过选择多个随机时间点,对目标服务器上的被测***进行堆栈采集,然后将堆栈采集结果进行对比分析,生成性能分析结果,达到了每次堆栈数据采集的公正性、随机性,使得出的性能分析结果更加可靠。
本发明实施例中,堆栈分析结果包括:死锁信息、线程运行状态统计结果和业务逻辑函数的高频函数调用统计结果中的至少一个,其中,高频函数为函数调用次数符合设定条件的运行函数。
第二方面,本发明实施例提供一种***测试装置,该装置的技术效果可以参照上述方法实施例,该装置包括:
处理单元,用于对被测***所在的至少一个服务器进行性能测试;
采集单元,用于在性能测试过程中,获取所述至少一个服务器的运行参数;
处理单元,还用于根据所述运行参数,从所述至少一个服务器中确定目标服务器;对所述目标服务器上的所述被测***进行堆栈采集,并根据所述堆栈采集结果进行性能问题分析;生成所述被测***的性能测试结果和性能问题分析结果。
在一种可能的设计中,根据运行参数,处理单元具体用于:针对任一服务器,根据服务器的所述运行参数,计算该服务器的资源使用率;
从至少一个服务器中筛选出所述资源使用率符合预设指标的服务器,作为目标服务器。
在一种可能的设计中,运行参数包括单位时间内的***负载、CPU使用率、内存使用率或网络使用率中的至少一项;
所述处理单元还用于:根据服务器的所述运行参数,通过预设的资源使用率公式计算所述服务器的资源使用率;所述预设的资源使用率公式为:
R_U=L_ONE×K1+CPU_U×K2+M_U×K3+Net_U×K4;
其中,R_U表示服务器的资源使用率,L_ONE表示服务器的单位时间内的***负载,K1表示单位时间内的***负载的权重,CPU_U表示服务器的CPU使用率,K2表示CPU使用率的权重,M_U表示服务器的内存使用率,K3表示内存使用率的权重,NET_U表示服务器的网络使用率,K4表示网络使用率的权重。
进一步地,处理单元具体用于:根据服务器的资源使用率,从所述至少一个服务器中确定目标服务器,其中,目标服务器的资源使用率符合预设指标。
在一种可能的设计中,预设指标包括:目标服务器的资源使用率为被测***内正在进行性能测试的全部服务器的资源使用率的最大值,或者目标服务器的所述资源使用率大于设定阈值。
在一种可能的设计中,处理单元还用于:在多个随机选择的时间点上对目标服务器上的被测***进行堆栈采集。然后,将该多个时间点的堆栈采集结果进行对比分析,生成性能问题分析结果。
在一种可能的设计中,堆栈分析结果包括:死锁信息、线程运行状态统计结果和业务逻辑函数的高频函数调用统计结果中的至少一个。其中,高频函数为函数调用次数符合设定条件的运行函数;
第三方面,本发明实施例提供的一种计算设备,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行如上述第一方面任意所述的***测试方法。
第四方面,本发明实施例提供的一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行如上述第一方面任意所述的***测试方法。
本发明的这些方面或其它方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种装置构架示意图;
图2为本发明实施例提供的一种***测试方法的流程示意图;
图3为本发明实施例提供的一种部分堆栈采集结果示意图;
图4为本发明实施例提供的一种***测试方法的流程示意图;
图5为本发明实施例提供的一种***测试的架构示意图;
图6为本发明实施例提供的一种***测试的装置结构示意图;
图7为本发明实施例提供的一种***测试的计算设备示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供的一种***测试方法所适用的***架构,该***架构可以包括测试装置101和待测试装置102,当待测试装置102进行了***更新或者软硬件改进等,都需要测试装置101对待测试装置102进行***测试。具体的,测试装置101向待测试装置102发送测试任务,待测试装置102接收测试任务并对测试任务进行处理,测试装置101根据待测试装置102处理测试任务的响应时间、最大用户并发数、最大TPS等参数生成待测试装置102的性能测试结果。其中,用户并发数指的是***同时处理的用户请求/事务数,TPS指的是***每秒所处理的事务请求数量。
基于上述描述,图2示例性的示出了本发明实施例提供的一种***测试方法的流程,该方法可以测试装置101执行,该测试装置101可以设置于***所在的至少一个服务器中。如图2所示,该方法具体包括如下步骤。
步骤201,对被测***所在的至少一个服务器进行性能测试。
在一种可能的实施例中,管理人员通过操控***所在服务器上的测试装置101触发启动对被测***进行性能测试。
示例性的,如图5所示,清算***可以被设置于多个服务器上(例如图5中的服务器1、服务器2和服务器3),默认每台服务器上运行的清算***都是一致的,也就是服务器1、服务器2和服务器3运行相同的清算***。管理人员可以操控管理平台上的测试装置101向服务器1、服务器2和服务器3发出测试指令,该测试指令用于指示启动对清算***进行性能测试。其中,管理平台可以设置于服务器1、服务器2或者服务器3上。
步骤202,在性能测试过程中,获取至少一个服务器的运行参数。
其中,运行参数可以包括单位时间内的***负载、CPU使用率、内存使用率或网络使用率中的至少一项。
具体来说,在一种可能的实施方式中,为了确保采集数据准确,可以在开始性能测试的一分钟后,获取被测***所在的服务器的列表,然后根据该服务器的列表,计算当前一分钟内各服务器的运行参数,例如单位时间内的***负载、CPU使用率、内存使用率或网络使用率。
步骤203,根据运行参数,从至少一个服务器中确定目标服务器。
具体地,针对任一服务器,测试装置101获取运行参数后,可以根据运行参数,计算该服务器的资源使用率,进一步地,从全部服务器中筛选出资源使用率符合预设指标的服务器为目标服务器。可选地,从至少一个服务器中选择资源使用率最大的服务器为目标服务器,或者,从至少一个服务器中选择资源使用率大于设定阈值的服务器为目标服务器,其中,目标服务器可以为一个或者多个,本申请实施例对此并不作限定。
通过预设的资源使用率公式计算所述服务器的资源使用率;所述预设的资源使用率公式为:
在一种可能的实施方式中,针对第一服务器,第一服务器为至少一个服务器的任意一个,根据第一服务器的运行参数,计算第一服务器的资源使用率,资源使用率满足预设的资源使用率公式;
R_U=L_ONE×K1+CPU_U×K2+M_U×K3+Net-U×K4;
其中,R_U表示所述第一服务器的资源使用率,L_ONE表示第一服务器的所述单位时间内的***负载,K1表示单位时间内的***负载的权重,CPU_U表示第一服务器的所述CPU使用率,K2表示CPU使用率的权重,M_U表示第一服务器的内存使用率,K3表示内存使用率的权重,NET_U表示第一服务器的网络使用率,K4表示网络使用率的权重。其中,权重的具体取值可以根据实际需要设定。
步骤204,对目标服务器上的被测***进行堆栈采集,并根据堆栈采集结果进行性能问题分析。
具体来说,在一种可能的实施方式中,可以在多个随机选择的时间点上对目标服务器上的被测***进行堆栈采集;然后将所述多个时间点的堆栈采集结果进行对比分析,生成性能问题分析结果。例如,当确定出目标服务器之后,可以使用脚本对目标服务器上的被测***进行Java堆栈采集,其中,堆栈采集命令主要是采用JDK自带的工具jstack命令进行进程堆栈采集。
步骤205,生成所述被测***的性能测试结果和性能问题分析结果。
具体来说,堆栈分析结果可以包括:死锁信息、线程运行状态统计结果和业务逻辑函数的高频函数调用统计结果中的至少一个。其中,高频函数为函数调用次数符合设定条件的运行函数。进一步地,在得到堆栈分析结果时,还可以得到性能测试结果,然后将堆栈分析结果保存数据库中,在管理员触发性能测试结果展示的时候,堆栈分析结果可以随同性能测试结果一并展示,以便于指导测试人员发现应用性能问题。
在一种可能的实施方式中,上述步骤204,其中,示例性地,运行脚本对目标服务器上的被测***进行Java堆栈采集。其中,脚本中的采集命令主要是采用JDK(JavaDevelopment Kit,Java语言的软件开发工具包)自带的工具jstack命令进行堆栈采集。可选地,脚本的采集逻辑如下:
1:使用命令ssh$ip“ps–ef|grep$name|grep-v grep|awk'{print$2}'”登陆目标服务器,通过服务名称获取进程ID;其中,IP为目标服务器IP,name为目标服务名称;
2:使用命令ssh ip“ps–ef|grep$name|grep-v grep|awk'{print$8}'”登陆目标服务器,通过被测***启动的java目录;
3:使用命令ssh ip“$home/bin/jstack–l$pid>/data/pid_1.stack”进行被测***的堆栈获取;其中Home为第2步获取的java目录,pid为第一步获取的进程IP;
4:使用命令scp ip:/data/pid_1.stack/data/将获取的被测***的堆栈拷贝到本地,再进行分析。
由上述脚本实现对被测***的堆栈采集。
在一种可能的实施例中,为了更真实反映性能测试过程中被测***的运行情况,采用随机离散的方式,随机获取计算出目标服务器后的第二设定时间的至少一个时间点,进行数据采集。示例性地,采用随机离散的方式,选择性能测试开始后的3分钟内的3个时间点;
示例性地,离散的三个采集时间点的计算方式如下:
第一采集时间点:使用随机函数计算20-40之间的一个随机数,作为第一采集时间点,当时间到达时,采用上述的采集方法进行堆栈采集;比如,随机计算得到“30”,则在计算出目标服务器后的30秒时,对目标服务器所在的被测***进行堆栈采集。
第二采集时间点:使用随机函数计算80~100之间的一个随机数,作为第二采集时间点;比如,随机计算得到“89”,则在计算出目标服务器后的89秒时,对被测***进行堆栈采集。
第三采集时间点:使用随机函数计算140~160之间的一个随机数,作为第三采集时间点;比如,随机计算得到“155”,则在计算出目标服务器后的155秒时,对被测***进行堆栈采集。
在一种可能的实施方式中,上述步骤205,其中,在堆栈采集之后,保存堆栈采集结果,同时进行对比分析,生成堆栈分析结果,得到了性能测试结果和性能问题分析结果,再保存在管理平台对应的数据库。其中,堆栈采集结果包括如下内容中的至少一个:
1.线程名称,线程ID以及数量;
2.线程运行状态,锁状态;
3.线程函数调用堆栈;
在一种可能的实施例中,对堆栈采集结果进行分析和对比,主要提取如下信息:
1.死锁信息:搜索堆栈信息中是否有deadlock关键字;如果有,则表示有线程死锁情况,将相关死锁状态和线程信息存储数据库。
2.线程运行状态信息:根据堆栈采集结果解析其中每个线程的运行状态,将线程的状态比如WAITING(等待),RUNNABLE(就绪)等进行统计计数;示例性地,统计RUNNABLE状态的线程,如果所有堆栈采集结果中该状态的计数都比较小,则判断线程配置不合理或者存在线程竞争的提示,将线程状态以及统计计数以及判断结果存入数据库。
3.业务逻辑函数的高频函数调用统计:获取线程状态为Running(运行)状态的线程堆栈,解析出每个堆栈中的函数信息,将函数名称,函数调用次数等作为记录保存。
对于多个线程中存在相同的函数名称,则函数调用次数逐步递增。通过这种方式,得到线程堆栈中每个函数的调用次数,进一步地,对这些函数统计进行排序。其中,函数调用次数符合设定条件的运行函数为高频函数,这些高频函数可能存在性能问题,将上述信息存入管理平台对应的数据库后再进行分析。示例性的,函数调用次数为TOP10的函数符合设定条件,换句话说,函数调用次数在前10的函数就是高频函数。需要说明的是,在实际应用中,提取的信息不局限于上述三个。
在一种可能的实施例中,被测***进行性能测试,对其按照上述方法进行堆栈采集后得到的部分堆栈采集结果。如图3所示,其中堆栈采集结果包括图3所示两个线程,具体地,上述两个线程都处于WAITING(等待)状态,且都无deadlock(死锁)关键字,也就是说两个线程都无死锁情况。
为了更加***的描述上述***测试方法,本发明实施例还示意性地提供一种***测试方法流程,如图4所示,包括:
步骤401,测试装置101对被测***所在的至少一个服务器启动性能测试。
在一种可能的实施例中,管理人员通过管理平台启动各个被测***进行性能测试;其中,被测***对应至少一个服务器。
步骤402,测试装置101在被测***所在的服务器中选择资源占用最高的目标服务器。
在一种可能的实施例中,在性能测试开始后的第一设定时间后,测试装置101对各个服务器的运行参数进行采集,对该运行参数进行处理,确定运行参数满足预设指标的服务器为目标服务器。其中,结合图5所示,测试装置101获取服务1、服务器2和服务器3上清算***的***负载、CPU使用率、内存使用率、网络使用率等运行参数后,根据上述资源使用率公式进行运算后,比如算出服务器3的R_U最高,则服务器3为目标服务器。
步骤403,测试装置101连接目标服务器。
在一种可能的实施例中,测试装置101根据目标服务器的IP登录到目标服务器。其中,结合图5所示,测试装置101登录到服务器3。
步骤404,测试装置101对目标服务器上的被测***进行堆栈采集。
在一种可能的实施例中,在登录到目标服务器之后,对该目标服务器上的被测***进行堆栈采集。其中,运行脚本对目标服务器上的被测***进行堆栈采集。具体地,使用脚本命令进入被测***的目录后,再使用相应命令对被测***进行堆栈采集。其中,结合图5所示,登录到目标服务器3之后,对服务器3上的清算***使用上述步骤204中的方法,运行脚本,进行堆栈采集。
在一种可能的实施例中,为了更真实反映性能测试过程中被测***的运行情况,脚本中采用随机离散的方式,随机获取计算出目标服务器后的第二设定时间的至少一个时间点,进行数据采集,其中,具体如上述步骤204中的方法。
步骤405,测试装置101保存目标服务上被测***的堆栈采集结果。
在一种可能的实施例中,在上述步骤404的中测试装置101对目标服务器上的被测***进行堆栈采集完成之后,保存堆栈采集结果到管理平台对应的数据库。
其中,结合图5所示,测试装置101对服务器3上的清算***进行堆栈采集之后,保存堆栈采集结果到管理平台对应的服务器。
步骤406,测试装置101对堆栈采集结果进行对比分析。
在一种可能的实施例中,测试装置101对保存的堆栈采集结果进行对比分析,生成堆栈分析结果,也就是性能问题分析结果。
步骤407,展示堆栈分析结果。
在一种可能的实施例中,通过管理平台同时展示堆栈分析结果和性能测试结果。可选地,管理平台通过文字或语音的方式输出堆栈分析结果和性能测试结果。
其中,结合图5所示,管理平台通过显示器输出的方式向管理人员展示测试装置101对服务器3上清算***的堆栈分析结果和性能测试结果。
基于相同的技术构思,本发明实施例还提供一种性能测试装置,该装置可执行上述方法的实施例。本发明实施例提供的装置如图6所示,包括:
处理单元601,用于对被测***所在的至少一个服务器进行性能测试;
采集单元602,用于在性能测试过程中,获取所述至少一个服务器的运行参数;
处理单元601,还用于根据所述运行参数,从所述至少一个服务器中确定目标服务器;对所述目标服务器上的所述被测***进行堆栈采集,并根据所述堆栈采集结果进行性能问题分析;生成所述被测***的性能测试结果和性能问题分析结果。
在一种可能的设计中,处理单元601具体用于:针对任一所述服务器,根据服务器的运行参数,计算该服务器的资源使用率;从所述至少一个服务器中筛选出所述资源使用率符合预设指标的目标服务器。
在一种可能的设计中,运行参数包括单位时间内的***负载、CPU使用率、内存使用率或网络使用率中的至少一项;
其中,处理单元601还用于:根据服务器的所述运行参数,通过预设的资源使用率公式计算所述服务器的资源使用率;
所述预设的资源使用率公式为:
R_U=L_ONE×K1+CPU_U×K2+M_U×K3+Net_U×K4
其中,R_U表示服务器的资源使用率,L_ONE表示该服务器的单位时间内的***负载,K1表示单位时间内的***负载的权重,CPU_U表示服务器的CPU使用率,K2表示CPU使用率的权重,M_U表示服务器的内存使用率,K3表示内存使用率的权重,NET_U表示服务器的网络使用率,K4表示网络使用率的权重;
进一步地,处理单元601具体用于:根据服务器的资源使用率,从所述至少一个服务器中确定目标服务器,其中,目标服务器的资源使用率符合预设指标。
在一种可能的设计中,目标服务器的资源使用率符合预设指标包括:目标服务器的资源使用率为正在进行性能测试的所述被测***所在的全部服务器的资源使用率的最大值,或者目标服务器的资源使用率大于设定阈值。
在一种可能的设计中,处理单元601还用于:在多个随机选择的时间点上对目标服务器上的被测***进行堆栈采集。然后,将个该多个时间点的堆栈采集结果进行对比分析,生成性能问题分析结果。
在一种可能的设计中,堆栈分析结果包括:死锁信息、线程运行状态统计结果和业务逻辑函数的高频函数调用统计结果中的至少一个。所述高频函数为函数调用次数符合设定条件的运行函数;
基于相同的技术构思,本发明实施例提供了一种计算设备,如图7所示,包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本发明实施例中不限定处理器701与存储器702之间的具体连接介质,图7中处理器701和存储器702之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行前述的结算方法中所包括的步骤。
其中,处理器701是终端设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,从而处理数据。可选的,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例提供了一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当所述程序在终端设备上运行时,使得所述终端设备执行结算方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种***测试方法,其特征在于,包括:
对被测***所在的至少一个服务器进行性能测试;
在性能测试过程中,获取所述至少一个服务器的运行参数;
根据所述运行参数,从所述至少一个服务器中确定目标服务器;
对所述目标服务器上的所述被测***进行堆栈采集,并根据所述堆栈采集结果进行性能问题分析;
生成所述被测***的性能测试结果和性能问题分析结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述运行参数,从所述至少一个服务器中确定目标服务器,包括:
针对任一所述服务器,根据所述服务器的所述运行参数,计算所述服务器的资源使用率;
从所述至少一个服务器中筛选出所述资源使用率符合预设指标的目标服务器。
3.根据权利要求2所述的方法,其特征在于,所述运行参数包括单位时间内的***负载、CPU使用率、内存使用率或网络使用率中的至少一项;
所述根据服务器的所述运行参数,计算所述服务器的资源使用率包括:
根据服务器的所述运行参数,通过预设的资源使用率公式计算所述服务器的资源使用率;
所述预设的资源使用率公式为:
R_U=L_ONE×K1+CPU_U×K2+M_U×K3+Net_U×K4;
其中,R_U表示所述服务器的资源使用率,L_ONE表示所述服务器的所述单位时间内的***负载,K1表示所述单位时间内的***负载的权重,CPU_U表示所述服务器的所述CPU使用率,K2表示所述CPU使用率的权重,M_U表示所述服务器的所述内存使用率,K3表示所述内存使用率的权重,NET_U表示所述服务器的所述网络使用率,K4表示所述网络使用率的权重。
4.根据权利要求2所述的方法,其特征在于,所述预设指标包括:
所述目标服务器的所述资源使用率为正在进行性能测试的所述被测***所在的全部服务器的资源使用率的最大值,或者所述目标服务器的所述资源使用率大于设定阈值。
5.根据权利要求1所述的方法,其特征在于,对所述目标服务器上的所述被测***进行堆栈采集,并根据所述堆栈采集结果进行性能问题分析,包括:
在多个随机选择的时间点上对所述目标服务器上的所述被测***进行堆栈采集;
将所述多个时间点的堆栈采集结果进行对比分析,生成性能问题分析结果。
6.根据权利要求5所述的方法,其特征在于,所述堆栈采集结果包括:死锁信息、线程运行状态统计结果和业务逻辑函数的高频函数调用统计结果中的至少一个,其中,所述高频函数为函数调用次数符合设定条件的运行函数。
7.一种***测试装置,其特征在于,所述装置包括:采集单元、处理单元;
所述处理单元,用于对被测***所在的至少一个服务器进行性能测试;
所述采集单元,用于在性能测试过程中,获取所述至少一个服务器的运行参数;
所述处理单元,还用于根据所述运行参数,从所述至少一个服务器中确定目标服务器;对所述目标服务器上的所述被测***进行堆栈采集,并根据所述堆栈采集结果进行性能问题分析;生成所述被测***的性能测试结果和性能问题分析结果。
8.根据权利要求7所述的装置,其特征在于,所述处理单元具体用于:
针对任一所述服务器,根据服务器的所述运行参数,计算该服务器的资源使用率;
从所述至少一个服务器中筛选出所述资源使用率符合预设指标的目标服务器。
9.根据权利要求8所述的装置,其特征在于,所述运行参数包括单位时间内的***负载、CPU使用率、内存使用率或网络使用率中的至少一项;
所述处理单元还用于:根据服务器的所述运行参数,通过预设的资源使用率公式计算所述服务器的资源使用率;
所述预设的资源使用率公式为:
R_U=L_ONE×K1+CPU_U×K2+M_U×K3+Net_U×K4;
其中,R_U表示所述服务器的资源使用率,L_ONE表示所述服务器的所述单位时间内的***负载,K1表示所述单位时间内的***负载的权重,CPU_U表示所述服务器的所述CPU使用率,K2表示所述CPU使用率的权重,M_U表示所述服务器的所述内存使用率,K3表示所述内存使用率的权重,NET_U表示所述服务器的所述网络使用率,K4表示所述网络使用率的权重。
10.根据权利要求8所述的装置,其特征在于,所述预设指标包括:
所述目标服务器的所述资源使用率为所述正在进行性能测试的所述被测***所在的全部服务器的资源使用率的最大值,或者所述目标服务器的所述资源使用率大于设定阈值。
11.根据权利要求7所述的装置,其特征在于,所述处理单元还用于:
在多个随机选择的时间点上对所述目标服务器上的所述被测***进行堆栈采集;
将所述多个时间点的堆栈采集结果进行对比分析,生成性能问题分析结果。
12.根据权利要求11所述的装置,其特征在于,所述堆栈采集结果包括:死锁信息、线程运行状态统计结果和业务逻辑函数的高频函数调用统计结果中的至少一个,其中,所述高频函数为函数调用次数符合设定条件的运行函数。
13.一种计算设备,其特征在于,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行权利要求1-6任一权利要求所述的方法。
14.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1-6任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911244071.5A CN111124791A (zh) | 2019-12-06 | 2019-12-06 | 一种***测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911244071.5A CN111124791A (zh) | 2019-12-06 | 2019-12-06 | 一种***测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111124791A true CN111124791A (zh) | 2020-05-08 |
Family
ID=70497730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911244071.5A Pending CN111124791A (zh) | 2019-12-06 | 2019-12-06 | 一种***测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124791A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131086A (zh) * | 2020-09-18 | 2020-12-25 | 浪潮电子信息产业股份有限公司 | 一种应用服务器的性能调优方法、装置及设备 |
CN113434402A (zh) * | 2021-06-24 | 2021-09-24 | 中国工商银行股份有限公司 | 一种微服务应用的性能剖析方法、装置及设备 |
CN113608982A (zh) * | 2021-07-27 | 2021-11-05 | 远景智能国际私人投资有限公司 | 函数执行性能监测方法、装置、计算机设备及存储介质 |
-
2019
- 2019-12-06 CN CN201911244071.5A patent/CN111124791A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131086A (zh) * | 2020-09-18 | 2020-12-25 | 浪潮电子信息产业股份有限公司 | 一种应用服务器的性能调优方法、装置及设备 |
CN113434402A (zh) * | 2021-06-24 | 2021-09-24 | 中国工商银行股份有限公司 | 一种微服务应用的性能剖析方法、装置及设备 |
CN113608982A (zh) * | 2021-07-27 | 2021-11-05 | 远景智能国际私人投资有限公司 | 函数执行性能监测方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124791A (zh) | 一种***测试方法及装置 | |
US9715409B2 (en) | Job delay detection method and information processing apparatus | |
US20040123274A1 (en) | Multithread tracing method and apparatus | |
CN109495291B (zh) | 调用异常的定位方法、装置和服务器 | |
CN110647447B (zh) | 用于分布式***的异常实例检测方法、装置、设备和介质 | |
CN111563014A (zh) | 接口服务性能测试方法、装置、设备和存储介质 | |
CN110322143B (zh) | 模型实体化管理方法、装置、设备及计算机存储介质 | |
CN110633211A (zh) | 对于多接口的测试方法、装置、服务器及介质 | |
CN111651595A (zh) | 一种异常日志处理方法及装置 | |
CN111680085A (zh) | 数据处理任务分析方法、装置、电子设备和可读存储介质 | |
CN112365157A (zh) | 智能派工方法、装置、设备及存储介质 | |
CN112328335B (zh) | 一种并发请求超时的诊断方法及装置、设备、存储介质 | |
CN112948262A (zh) | 一种***测试方法、装置、计算机设备和存储介质 | |
CN115168014A (zh) | 一种作业调度方法及装置 | |
CN115190010A (zh) | 基于软件服务依赖关系的分布推荐方法和装置 | |
CN113722141A (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
CN111222739B (zh) | 核电站的任务分配方法及核电站的任务分配*** | |
CN113791961A (zh) | 基于微服务的数据采集方法、装置、设备及存储介质 | |
CN108846634B (zh) | 一种案件自动授权方法及*** | |
CN109886327B (zh) | 一种分布式***中Java数据的处理***及方法 | |
CN113205442A (zh) | 基于区块链的电子政务数据反馈管理方法及装置 | |
CN117389841B (zh) | 加速器资源监控方法、装置、集群设备及存储介质 | |
CN114168440A (zh) | 一种元数据采集的性能测试方法、装置、设备和介质 | |
CN110472210B (zh) | 表单数据处理方法、装置、终端及存储介质 | |
KR20060063236A (ko) | 트래픽 데이터 파일 분석 기반의 분산 애플리케이션트랜잭션 성능 분석 방법 |
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 |