申请/专利权人:广州鲁邦通物联网科技股份有限公司
申请日:2020-12-31
公开(公告)日:2022-04-19
公开(公告)号:CN112631941B
主分类号:G06F11/36
分类号:G06F11/36;G06F11/34;G06F9/50
优先权:
专利状态码:有效-授权
法律状态:2022.04.19#授权;2021.04.27#实质审查的生效;2021.04.09#公开
摘要:本发明公开了一种定位linux内核slub内存泄漏的方法和系统,涉及软件开发技术,包括以下步骤:按照第一设定的时间间隔依次获取第一内存统计信息和第二内存统计信息;根据第一内存统计信息和第二内存统计信息确定内存泄漏情况是否属于slub内存泄漏;当内存泄漏情况属于slub内存泄漏时,按照第二设定时间间隔依次通过slabtop指令获取第一slabtop信息和第二slabtop信息;进而确定内存消耗增量满足第一预设条件的目标分配接口;获取所述目标分配接口的内存操作记录,所述内存操作记录包括内存分配记录和内存释放记录;根据内存操作记录,确定内存泄漏源。本发明可以准确定位内核slub内存泄漏的位置。
主权项:1.一种定位linux内核slub内存泄漏的方法,其特征在于,包括以下步骤:按照第一设定的时间间隔依次获取第一内存统计信息和第二内存统计信息;根据第一内存统计信息和第二内存统计信息确定内存泄漏情况是否属于slub内存泄漏;当内存泄漏情况属于slub内存泄漏时,按照第二设定时间间隔依次通过slabtop指令获取第一slabtop信息和第二slabtop信息;根据第一slabtop信息和第二slabtop信息确定内存消耗增量满足第一预设条件的目标分配接口;获取所述目标分配接口的内存操作记录,所述内存操作记录包括内存分配记录和内存释放记录;根据内存操作记录,确定内存泄漏源;在获取所述第一内存统计信息和获取所述第二内存统计信息之前,均执行以下步骤:执行SReclaimable内存的回收;根据第一内存统计信息和第二内存统计信息确定内存泄漏情况是否属于slub内存泄漏,包括:根据第一内存统计信息中的可用内存信息和所述第二内存统计信息中的可用内存之差,确定可用内存差值;根据第一内存统计信息中的SUnreclaim数值和所述第二内存统计信息中的SUnreclaim数值之差,确定SUnreclaim的内存新增值;当所述SUnreclaim的内存新增值和所述可用内存差值之差满足第二预设条件,则判定内存泄漏情况属于slub内存泄漏;所述内存分配记录包括alloc操作记录和alloc操作对应的调用堆栈记录;所述内存释放记录包括free操作和free操作对应的调用堆栈记录;所述根据内存操作记录,确定内存泄漏源,包括:通过对比内存分配记录和内存释放记录,确定没有对应的内存释放记录的目标内存分配记录;根据所述目标内存分配记录中堆栈记录所采用的堆栈,对多个所述目标内存分配记录进行分类统计;将统计量最大的分类所对应的堆栈确定内存泄漏源。
全文数据:
权利要求:
百度查询: 广州鲁邦通物联网科技股份有限公司 定位linux内核slub内存泄漏的方法和系统
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。