System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于linux页表统计进程的物理内存占用的方法、装置及计算机可读存储介质制造方法及图纸_技高网

基于linux页表统计进程的物理内存占用的方法、装置及计算机可读存储介质制造方法及图纸

技术编号:40869700 阅读:2 留言:0更新日期:2024-04-08 16:36
本发明专利技术属于内存占用统计技术领域,提供了一种基于linux页表统计进程的物理内存占用的方法、装置及计算机可读存储介质,其中,方法包括:(1)统计程序进入内核,在内核态下运行;(2)通过传入的参数获取到进程结构体;(3)通过所述进程结构体获取到页表;(4)轮训所有页表,获取已经分配物理内存的页表;(5)访问已经分配物理内存的页表的物理地址,并将物理地址暂存roaring bitmap数据结构;(6)统计roaring bitmap的位数,得到统计值;(7)将统计值乘以页表大小,得到进程的物理内存占用大小。本发明专利技术将使用linux的页表,读取到真实的物理地址后,进行进程的物理内存精确统计,可以有效避免多重映射带来的内存占用重复统计问题。

【技术实现步骤摘要】

本专利技术属于内存占用统计,具体地说,是涉及一种基于linux页表统计进程的物理内存占用的方法、装置及计算机可读存储介质


技术介绍

1、在java11发布后,发布了一项令人振奋的特性,就是zgc(垃圾回收器),此技术可以将java的gc停顿降低到1ms内,但是由于此技术的染色指针实现方式,是将多个地址映射到相同的物理页,导致linux在top统计的时候,存在重复统计,甚至出现物理内存占用翻倍的情况,导致物理内存占用情况统计不精确。


技术实现思路

1、本专利技术的目的在于提供一种基于linux页表统计进程的物理内存占用的方法,以解决现有技术所存在的存在重复统计、物理内存占用情况统计不精确的技术问题。

2、为了实现上述目的,本专利技术采取的技术方案如下:

3、一种基于linux页表统计进程的物理内存占用的方法,包括以下步骤:

4、(1)统计程序进入内核,在内核态下运行;

5、(2)通过传入的参数获取到进程结构体;

6、(3)通过所述进程结构体获取到linux页表;

7、(4)轮训所有linux页表,获取已经分配物理内存的linux页表;

8、(5)访问已经分配物理内存的linux页表的物理地址,并将物理地址暂存roaringbitmap数据结构;

9、(6)统计roaring bitmap的位数,得到统计值;

10、(7)将统计值乘以页表大小,得到进程的物理内存占用大小。>

11、在一种实施方案中,所述步骤(4)中轮训所有linux页表的具体方法如下:获取到linux页表后,通过判断linux页表的present的标识来判断是否已经分配物理内存,如果没有分配物理内存,此linux页表应该跳过,如果分配物理内存,则获取已经分配物理内存的linux页表。

12、在一种实施方案中,所述步骤(5)中,在将物理地址暂存roaring bitmap数据结构之前,首先,进行linux页表的物理地址4k对齐,然后,再将linux页表的物理地址右移12位。

13、在一种实施方案中,所述步骤(5)中,根据linux页表的大小,将物理地址放入不同的roaring bitmap数据结构。

14、在一种实施方案中,所述统计程序的用户接口设计为按进程统计。

15、为实现上述目的,本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行,以实现上述的基于linux页表统计进程的物理内存占用的方法。

16、为实现上述目的,本专利技术还提供了一种统计进程的物理内存占用的装置,包括:处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使得所述统计进程的物理内存占用的装置执行上述的基于linux页表统计进程的物理内存占用的方法。

17、与现有技术相比,本专利技术具备以下有益效果:

18、本专利技术将使用linux的页表,读取到真实的物理地址后,进行进程的物理内存精确统计,可以有效避免多重映射带来的内存占用重复统计问题。

本文档来自技高网...

【技术保护点】

1.一种基于linux页表统计进程的物理内存占用的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于linuxlinux页表统计进程的物理内存占用的方法,其特征在于,所述步骤(4)中轮训所有linux页表的具体方法如下:获取到linux页表后,通过判断linux页表的present的标识来判断是否已经分配物理内存,如果没有分配物理内存,此linux页表应该跳过,如果分配物理内存,则获取已经分配物理内存的linux页表。

3.根据权利要求2所述的基于linuxlinux页表统计进程的物理内存占用的方法,其特征在于,所述步骤(5)中,在将物理地址暂存roaring bitmap数据结构之前,首先,进行linux页表的物理地址4k对齐,然后,再将linux页表的物理地址右移12位。

4.根据权利要求3所述的基于linuxlinux页表统计进程的物理内存占用的方法,其特征在于,所述步骤(5)中,根据linux页表的大小,将物理地址放入不同的roaring bitmap数据结构。

5.根据权利要求4所述的基于linux页表统计进程的物理内存占用的方法,其特征在于,所述统计程序的用户接口设计为按进程统计。

6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行,以实现如权利要求1~4中任一项所述的基于linux页表统计进程的物理内存占用的方法。

7.一种统计进程的物理内存占用的装置,其特征在于,包括:处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使得所述统计进程的物理内存占用的装置执行如权利要求1~4中任一项所述的基于linux页表统计进程的物理内存占用的方法。

...

【技术特征摘要】

1.一种基于linux页表统计进程的物理内存占用的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于linuxlinux页表统计进程的物理内存占用的方法,其特征在于,所述步骤(4)中轮训所有linux页表的具体方法如下:获取到linux页表后,通过判断linux页表的present的标识来判断是否已经分配物理内存,如果没有分配物理内存,此linux页表应该跳过,如果分配物理内存,则获取已经分配物理内存的linux页表。

3.根据权利要求2所述的基于linuxlinux页表统计进程的物理内存占用的方法,其特征在于,所述步骤(5)中,在将物理地址暂存roaring bitmap数据结构之前,首先,进行linux页表的物理地址4k对齐,然后,再将linux页表的物理地址右移12位。

4.根据权利要求3所述的基于linuxlin...

【专利技术属性】
技术研发人员:李登朱宪超霍展羽
申请(专利权)人:四川语言桥信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1