【技术实现步骤摘要】
一种基于LINUX操作系统的SLUB内存申请监测方法及系统
[0001]本专利技术涉及PCB
,特别是涉及一种基于LINUX操作系统的SLUB内存申请监测方法及系统。
技术介绍
[0002]目前在系统运行过程中经常需要监测系统内存的使用情况,其中内存泄露是最常见同时也是非常难以定位的问题,Linux操作系统内核中通过SLUB内存分配器为各内核模块分配内存,对于内核态的内存泄露需要获取SLUB内存申请的调用栈信息,以便于定位分析造成内存泄露的原因。
[0003]单丝,在当前内核定位内核态内存泄露的过程中,需要通过配置编译选项重新编译内核并更换内核的方式,获取SLUB内存申请的调用栈信息。由于更换内核需要重启系统,在生产环境中需要重启系统因此会对业务造成很大的影响且系统重启后出现问题的场景也会被破坏不利于问题的复现及定位,因此该方式对于问题定位不够友好。。
[0004]因此,如何实现避免了系统重启带来的业务影响,提升了用户分析定位内核态内存泄露问题的效率,是本领域中的技术难点之一。
技术实现思路
r/>[0005]本本文档来自技高网...
【技术保护点】
【技术特征摘要】
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/...
【专利技术属性】
技术研发人员:刘长生,
申请(专利权)人:浪潮商用机器有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。