一种基于LINUX操作系统的SLUB内存申请监测方法及系统技术方案

技术编号:33135728 阅读:19 留言:0更新日期:2022-04-17 01:00
本发明专利技术公开了一种一种LINUX操作系统的SLUB内存申请监测方法及系统,方法包括:S1,通过procfs文件系统新增系统文件/proc/sys/vm/slab/slabname/enable_trace,用于使能获取SLUB内存申请的调用栈信息;S2,注册所述系统文件的读写函数;S3,判断当前的写函数中enable_trace是否为1;若是,S4,设置slub_debug=DEBUG_DEFAULT_FLAGS开启获取调用栈开关,并调用init_tracking()函数初始化所述获取调用栈相关的数据结构,否则,S5,设置slub_debug=0关闭所述获取调用栈开关。通过设置系统参数的方式来获取SLUB内存申请的调用栈信息避免了系统重启的问题,避免了系统重启带来的业务影响,极大提升了用户分析定位内核态内存泄露问题的效率。核态内存泄露问题的效率。核态内存泄露问题的效率。

【技术实现步骤摘要】
一种基于LINUX操作系统的SLUB内存申请监测方法及系统


[0001]本专利技术涉及PCB
,特别是涉及一种基于LINUX操作系统的SLUB内存申请监测方法及系统。

技术介绍

[0002]目前在系统运行过程中经常需要监测系统内存的使用情况,其中内存泄露是最常见同时也是非常难以定位的问题,Linux操作系统内核中通过SLUB内存分配器为各内核模块分配内存,对于内核态的内存泄露需要获取SLUB内存申请的调用栈信息,以便于定位分析造成内存泄露的原因。
[0003]单丝,在当前内核定位内核态内存泄露的过程中,需要通过配置编译选项重新编译内核并更换内核的方式,获取SLUB内存申请的调用栈信息。由于更换内核需要重启系统,在生产环境中需要重启系统因此会对业务造成很大的影响且系统重启后出现问题的场景也会被破坏不利于问题的复现及定位,因此该方式对于问题定位不够友好。。
[0004]因此,如何实现避免了系统重启带来的业务影响,提升了用户分析定位内核态内存泄露问题的效率,是本领域中的技术难点之一。

技术实现思路

[0005]本专利技术的目的是提供一种基于LINUX操作系统的SLUB内存申请监测方法及系统,避免了系统重启带来的业务影响,极大提升了用户分析定位内核态内存泄露问题的效率。
[0006]为解决上述技术问题,本专利技术实施例提供了一种LINUX操作系统的SLUB内存申请监测方法,包括:
[0007]S1,通过procfs文件系统新增系统文件/proc/sys/vm/slab/slabname/enable_trace,用于使能获取SLUB内存申请的调用栈信息;
[0008]S2,注册所述系统文件的读写函数;
[0009]S3,判断当前的写函数中enable_trace是否为1;
[0010]若是,S4,设置slub_debug=DEBUG_DEFAULT_FLAGS开启获取调用栈开关,并调用init_tracking()函数初始化所述获取调用栈相关的数据结构,否则,S5,设置slub_debug=0关闭所述获取调用栈开关。
[0011]其中,还包括:
[0012]显示当前的所述获取调用栈开关的状态。
[0013]其中,所述S3还包括:
[0014]S31,判断当前的写函数中enable_trace是否为1或0;
[0015]若是,S32,当前的所述写函数中enable_trace输入有效,否则,S33,当前的所述写函数中enable_trace输入无效。
[0016]其中,在所述S33后,还包括:
[0017]将所述写函数中enable_trace输入无效的信息反馈到前端。
[0018]除此之外,本申请的实施例还提供了一种基于LINUX操作系统的SLUB内存申请监测系统,包括:
[0019]系统文件创建模块,用于通过procfs文件系统新增系统文件/proc/sys/vm/slab/slabname/enable_trace,用于使能获取SLUB内存申请的调用栈信息;
[0020]读写函数注册模块,用于注册所述系统文件的读写函数;
[0021]写函数中enable_trace判断模块,用于判断当前的写函数中enable_trace是否为1,并输出判断结果;
[0022]获取调用栈开关执行模块,用于根据所述判断结果,在所述enable_trace为1后,设置slub_debug=DEBUG_DEFAULT_FLAGS开启获取调用栈开关,并调用init_tracking()函数初始化所述获取调用栈相关的数据结构,否则,设置slub_debug=0关闭所述获取调用栈开关。
[0023]其中,还包括与所述获取调用栈开关执行模块连接的显示模块,用于显示所述当前的所述获取调用栈开关的状态。
[0024]其中,还包括与所述写函数中enable_trace判断模块连接的输入合法判断模块,用于在当前的写函数中enable_trace为1或0后,判定当前的所述写函数中enable_trace输入有效,否则,判定当前的所述写函数中enable_trace输入无效。
[0025]其中,还包括与所述输入合法判断模块连接的输入无效反馈模块,用于在所述写函数中enable_trace输入无效后将所述所述写函数中enable_trace输入无效信息反馈到前端。
[0026]本专利技术实施例提供的基于LINUX操作系统的SLUB内存申请监测方法及系统,与现有技术相比,具有以下优点:
[0027]本专利技术实施例提供的基于LINUX操作系统的SLUB内存申请监测方法及系统,通过procfs文件系统新增系统文件/proc/sys/vm/slab/slabname/enable_trace,用于使能获取SLUB内存申请的调用栈信息;然后注册所述系统文件的读写函数;通过判断外部输入的写函数中enable_trace状态,判断当前的写函数中enable_trace是否为1;若是,设置slub_debug=DEBUG_DEFAULT_FLAGS开启获取调用栈开关,并调用init_tracking()函数初始化所述获取调用栈相关的数据结构,否则,S5,设置slub_debug=0关闭所述获取调用栈开关。通过设置系统参数的方式来获取SLUB内存申请的调用栈信息避免了系统重启的问题,避免了系统重启带来的业务影响,极大提升了用户分析定位内核态内存泄露问题的效率。
附图说明
[0028]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为本专利技术实施例提供的LINUX操作系统的SLUB内存申请监测方法的一种具体实施方式的步骤流程示意图;
[0030]图2为本专利技术实施例提供的LINUX操作系统的SLUB内存申请监测方法的写函数合法判断步骤流程;
[0031]图3为本专利技术实施例提供的LINUX操作系统的SLUB内存申请监测系统的一种具体实施方式的结构示意图。
具体实施方式
[0032]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0033]请参考图1

3,图1为本专利技术实施例提供的LINUX操作系统的SLUB内存申请监测方法的一种具体实施方式的步骤流程示意图;图2为本专利技术实施例提供的LINUX操作系统的SLUB内存申请监测方法的写函数合法判断步骤流程;图3为本专利技术实施例提供的LINUX操作系统的SLUB内存申请监测系统的一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种LINUX操作系统的SLUB内存申请监测方法,其特征在于,包括:S1,通过procfs文件系统新增系统文件/proc/sys/vm/slab/slabname/enable_trace,用于使能获取SLUB内存申请的调用栈信息;S2,注册所述系统文件的读写函数;S3,判断当前的写函数中enable_trace是否为1;若是,S4,设置slub_debug=DEBUG_DEFAULT_FLAGS开启获取调用栈开关,并调用init_tracking()函数初始化所述获取调用栈相关的数据结构,否则,S5,设置slub_debug=0关闭所述获取调用栈开关。2.如权利要求1所述LINUX操作系统的SLUB内存申请监测方法,其特征在于,还包括:显示当前的所述获取调用栈开关的状态。3.如权利要求2所述LINUX操作系统的SLUB内存申请监测方法,其特征在于,所述S3还包括:S31,判断当前的写函数中enable_trace是否为1或0;若是,S32,当前的所述写函数中enable_trace输入有效,否则,S33,当前的所述写函数中enable_trace输入无效。4.如权利要求3所述LINUX操作系统的SLUB内存申请监测方法,其特征在于,在所述S33后,还包括:将所述写函数中enable_trace输入无效的信息反馈到前端。5.一种基于LINUX操作系统的SLUB内存申请监测系统,其特征在于,包括:系统文件创建模块,用于通过procfs文件系统新增系统文件/proc/sys/vm/slab/...

【专利技术属性】
技术研发人员:刘长生
申请(专利权)人:浪潮商用机器有限公司
类型:发明
国别省市:

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

1