【技术实现步骤摘要】
一种内存泄露检测方法、装置、设备及介质
[0001]本申请涉及数据处理
,尤其涉及一种内存泄露检测方法、装置、设备及介质。
技术介绍
[0002]为了更好的管理内存资源的使用,数据库往往会基于系统底层的内存相关函数(如C标准库中的malloc、realloc、free)来自己实现一套内存管理机制,其中Greenplum分布式数据库的存在有一套MemoryContext(内存上下文)内存分配机制,通过该内存管理机制可以有效减少内存碎片以及意外的内存泄漏情况。
[0003]然而,即便存在内存管理机制,也可能存在内存泄漏情况。在数据库开发过程中,由于Memory Context内存分配机制中一个Memory Context可以有关联多个子Memory Context,在查询进程每个查询请求对应的查询过程完成后,极易出现某个Memory Context关联的内存未释放的情况,此时即会出现内存泄漏。
[0004]在数据库连接池普遍应用的现在,若存在有内存泄漏,持续运行的长连接进程占用的内存将不断增长,最终甚至可导
【技术保护点】
【技术特征摘要】
1.一种内存泄露检测方法,其特征在于,应用于一个查询进程,该方法包括:接收用户的查询请求,确定当前内存泄露检测功能开启时,从所述查询进程对应的内存使用情况记录文件中获取当前的内存状态信息;从所述内存状态信息中筛选出与内存泄漏相关的目标内存段,并基于所述目标内存段,确定当前内存中的未释放内存的数据量;将所述未释放内存的数据量与参考数据量进行比对,确定当前是否存在内存泄漏,所述参考数据量根据未发生内存泄漏时内存的数据量确定。2.根据权利要求1所述的方法,其特征在于,将所述未释放内存的数据量与参考数据量进行比对,确定当前是否存在内存泄漏前,还包括:根据所述查询进程中记录内存泄漏检测次数的第一变量,确定当前是否首次进行内存泄露检测;确定首次进行内存泄露检测时,根据所述未释放内存的数据量确定参考数据量;确定非首次进行内存泄露检测时,执行将所述未释放内存的数据量与参考数据量进行比对的步骤。3.根据权利要求1或2所述的方法,其特征在于,从所述查询进程对应的内存使用情况记录文件中获取当前的内存状态信息前,还包括:确定当前接收到查询请求在所述查询进程中对应的次数;根据当前接收到查询请求在所述查询进程中对应的次数确定达到预设的内存泄露检测周期。4.根据权利要求3所述的方法,其特征在于,所述查询进程中设置有记录接收到查询请求的次数的全局变量,所述全局变量的初始值为0,每接收到一次用户的查询请求,所述当前全局变量的数值增加1。5.根据权利要求1所述的方法,其特征在于,从所述内存状态信息中筛选出与内存泄漏相关的目标内存段,并基于所述目标内存段,确定当前内存中的未释放内存的数据量,包括:从所述内存状态信息中筛选出与brk函数对应的栈内存段和与mmap...
【专利技术属性】
技术研发人员:陶帅,周明伟,
申请(专利权)人:浙江大华技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。