System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据,特别是涉及一种服务器性能测试中的内存问题定位方法、装置、计算机设备、存储介质。
技术介绍
1、在性能测试中会遇到很多方面的问题,尤其是在长时间的稳定性测试中会出现内存问题,例如内存溢出、内存泄露、内存持续上升或者其他内存问题。导致这些现象发生会有各种各样的原因,可能是jvm参数设置不合理,也有可能是程序本身设计缺陷。
2、相关技术中,在测试过程中遇到内存问题时一般会直接通过在服务器上执行实时监控输出的命令来观察系统运行的参数情况,但是,通过此命令只能直观获取系统总内存、已使用内存、剩余内存、缓存和缓冲区使用情况,确定内存分配上是否存在异常,但是无法定位到问题位置。
技术实现思路
1、基于此,有必要针对上述技术问题,提供了一种服务器性能测试中的内存问题定位方法、装置、计算机设备、存储介质。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
2、第一方面,本申请提供了一种服务器性能测试中的内存问题定位方法。所述方法包括:
3、获取服务器程序运行中的内存数据,并判断所述内存数据的数据量是否达到预设阈值;
4、在所述内存数据的数据量达到所述预设阈值时,获取目标进程的进程标识符,所述目标进程为内存数据的数据量达到所述预设阈值的进程;
5、基于所述进程标识符获取内存快照文件的目标内存数据,所述内存快照文件为所述内存数据的数据量达到所述预设阈值前的内存数据的记录文件;
6、基于所
7、基于排序后的内存数据生成待分析内存文件,所述待分析内存文件包括对象数量、对象信息;
8、利用与所述待分析内存文件的数据格式对应的分析工具对所述待分析内存文件中的对象数量、对象信息进行分析处理,得到内存问题的分析结果。
9、在其中一个实施例中,所述获取程序运行中的内存数据之前,所述方法还包括:
10、间隔第一预设时间,根据预设的监控规则,采集多个程序对应的内存数据,并显示于监控页面。
11、在其中一个实施例中,所述基于排序后的内存数据生成待分析内存文件包括:
12、获取排序后的内存数据中的对象,查找所述对象中的实例化对象,并确定所述实例化对象对应的赋值类型。
13、在其中一个实施例中,所述方法还包括;
14、所述赋值类型包括值类型、引用类型;
15、在所述赋值类型为值类型时,所述实例化对象的内存值为实例化对象的值所占用的内存空间大小;
16、在所述赋值类型为引用类型时,确定所述实例化对象引用的第一对象,所述实例化对象的内存值基于所述第一对象所占用的内存空间大小确定。
17、在其中一个实施例中,所述实例化对象的内存值基于所述第一对象所占用的内存空间大小确定包括:
18、获取所述引用的对象的赋值类型;
19、在所述引用的对象的赋值类型为值类型时,所述实例化对象的内存值基于所述第一对象占用的内存空间大小、实例化对象的值所占用的内存空间大小确定;
20、在所述第一对象为引用类型对象时,确定所述第一对象引用的第二对象,所述实例化对象的内存值基于所述第二对象占用的内存空间大小、第一对象占用的内存空间大小、实例化对象的值所占用的内存空间大小确定。
21、在其中一个实施例中,所述方法还包括:
22、获取所述实例化对象的对象引用关系,将各成员所占用的内存空间大小之和,作为所述实例化对象所占用的内存值。
23、第二方面,本申请还提供了一种服务器性能测试中的内存问题定位装置,所述装置包括:
24、判断模块,用于获取服务器程序运行中的内存数据,并判断所述内存数据的数据量是否达到预设阈值;
25、定位模块,用于在所述内存数据的数据量达到所述预设阈值时,获取目标进程的进程标识符,所述目标进程为内存数据的数据量达到所述预设阈值的进程;
26、获取模块,用于基于所述进程标识符获取内存快照文件的目标内存数据,所述内存快照文件为所述内存数据的数据量达到所述预设阈值前的内存数据的记录文件;
27、排序模块,用于基于所述目标内存数据中数据对象的大小对所述目标内存数据进行排序,得到排序后的内存数据;
28、生成模块,用于基于排序后的内存数据生成待分析内存文件,所述待分析内存文件包括对象数量、对象信息;
29、分析模块,用于利用与所述待分析内存文件的数据格式对应的分析工具对所述待分析内存文件中的对象数量、对象信息进行分析处理,得到内存问题的分析结果。
30、在其中一个实施例中,所述获取程序运行中的内存数据之前,所述装置还包括:
31、间隔第一预设时间,根据预设的监控规则,采集多个程序对应的内存数据,并显示于监控页面。
32、在其中一个实施例中,所述基于排序后的内存数据生成待分析内存文件包括:
33、获取排序后的内存数据中的对象,查找所述对象中的实例化对象,并确定所述实例化对象对应的赋值类型。
34、在其中一个实施例中,所述装置还包括;
35、所述赋值类型包括值类型、引用类型;
36、在所述赋值类型为值类型时,所述实例化对象的内存值为实例化对象的值所占用的内存空间大小;
37、在所述赋值类型为引用类型时,确定所述实例化对象引用的第一对象,所述实例化对象的内存值基于所述第一对象所占用的内存空间大小确定。
38、在其中一个实施例中,所述装置还包括;所述实例化对象的内存值基于所述第一对象所占用的内存空间大小确定包括:
39、获取所述引用的对象的赋值类型;
40、在所述引用的对象的赋值类型为值类型时,所述实例化对象的内存值基于所述第一对象占用的内存空间大小、实例化对象的值所占用的内存空间大小确定;
41、在所述第一对象为引用类型对象时,确定所述第一对象引用的第二对象,所述实例化对象的内存值基于所述第二对象占用的内存空间大小、第一对象占用的内存空间大小、实例化对象的值所占用的内存空间大小确定。
42、在其中一个实施例中,所述装置还包括;所述装置还包括:
43、获取所述实例化对象的对象引用关系,将各成员所占用的内存空间大小之和,作为所述实例化对象所占用的内存值。
44、第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现服务器性能测试中的内存问题定位方法的步骤。
45、第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现服务器性能测试中的内存问题定位方法的步骤。
46、第五方面,本本文档来自技高网...
【技术保护点】
1.一种服务器性能测试中的内存问题定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取程序运行中的内存数据之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述基于排序后的内存数据生成待分析内存文件包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括;
5.根据权利要求4所述的方法,其特征在于,所述实例化对象的内存值基于所述第一对象所占用的内存空间大小确定包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.一种服务器性能测试中的内存问题定位装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述获取程序运行中的内存数据之前,所述装置还包括:
9.根据权利要求8所述的装置,其特征在于,所述基于排序后的内存数据生成待分析内存文件包括:
10.根据权利要求9所述的装置,其特征在于,所述装置还包括;
11.根据权利要求10所述的装置,其特征在于,所述实例化对象的内
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种服务器性能测试中的内存问题定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取程序运行中的内存数据之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述基于排序后的内存数据生成待分析内存文件包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括;
5.根据权利要求4所述的方法,其特征在于,所述实例化对象的内存值基于所述第一对象所占用的内存空间大小确定包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.一种服务器性能测试中的内存问题定位装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述获取程序运行中的内存数据之前,所述装置还包括:
9.根据权利要求8所述的装置,其特征在...
【专利技术属性】
技术研发人员:张振文,王文静,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。