当前位置: 首页 > 专利查询>杨铸专利>正文

一种基于实存统计的数据库内存超限冻结方法技术

技术编号:41653176 阅读:20 留言:0更新日期:2024-06-13 02:43
本发明专利技术适用于Linux系统上的数据库软件。提供一种根据实际内存(实存)统计的数据库软件内存使用量超限进程冻结与解除冻结的方法。首先将数据库进程按照资源需求优先级分组,称为资源组。为资源组设置实存使用量上限,当资源组实存超限(Out Of Memory,OOM)时,利用Linux内核cgroup功能冻结资源组的所有进程,通过一个额外的调度进程轮询各个资源组的实存超限状态,如果发现有资源组发生OOM事件,则先给OOM资源组所有进程发送SIGINT信号以待响应。然后将该资源组的所有进程迁移到一个实存不受限制的资源组,并强制释放OOM资源组的内存计数。这样,OOM资源组的进程被解冻,继续响应SIGINT,以处理实存OOM事件,即向客户端报告内存超限错误并退出。这样,既避免了数据库进程使用虚拟内存(虚存)计数的不准确性,减少了内存浪费,又避免了数据库进程实存OOM被操作系统强制杀死的风险。按照上述方法在开源数据库Greenplum Database上进行方法原型验证,证明本发明专利技术的可行性与实用性。

【技术实现步骤摘要】

本专利技术属于数据库领域,提供一种数据库内存资源超限时的处理方法,使用实存统计替代虚存统计,避免了内存浪费。


技术介绍

1、经调研,目前linux系统上的主流数据库(mysql、postgresql、sql server等)内存管理和限制均基于虚存(virtual memory, vm)统计。使用这种统计方法,主要是因为内存资源是一种被频繁访问的资源,且数据库通常会大量使用共享内存,在linux系统中,想要获得进程的实际内存(简称“实存”)使用量需要进行大量统计计算,对性能有较大影响。

2、基于虚存的内存使用量统计方法,是在内存申请时增加计数,在释放内存时减少计数。具有内存使用量限制功能的数据库软件也是根据虚拟内存统计值进行限制的。

3、基于虚存统计的方法存在以下主要问题:

4、1、linux内存分配采用了写时拷贝技术(copy on write, cow),申请内存时并未实际分配物理内存,称为“虚存”,直到对该内存区域有实际写操作时才会实际分配内存,所以,进程的实存小于等于虚存。

5、2、主流数据库尤其是针本文档来自技高网...

【技术保护点】

1.一种基于实存统计的数据库内存超限冻结方法,其特征在于包括以下步骤:

2.根据权利要求1步骤1),其特征在于将数据库进程进行分组,与Linux内核cgroup组相对应。

3.根据权利要求1步骤2),其特征在于资源组的内存参数“memory.oom_control”设置为1,而不是默认值0,内存的统计和限制也是基于实存的。

4.根据权利要求1步骤3),本专利技术的关键在于资源调度辅助进程调度算法包括以下步骤:

【技术特征摘要】

1.一种基于实存统计的数据库内存超限冻结方法,其特征在于包括以下步骤:

2.根据权利要求1步骤1),其特征在于将数据库进程进行分组,与linux内核cgroup组相对应。

3.根据权利要求1步骤2)...

【专利技术属性】
技术研发人员:杨铸高琳
申请(专利权)人:杨铸
类型:发明
国别省市:

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

1