一种对数据库所有进程进行资源隔离的方法技术

技术编号:40917251 阅读:23 留言:0更新日期:2024-04-18 14:43
本发明专利技术公开了一种对数据库所有进程进行资源隔离的方法,包括:创建cgroup控制组并为cgroup控制组配置参数,通过修改源代码在postgres程序启动之前,获取postmaster进程的pid;通过系统调用将postmaster进程添加到cgroup控制组中,cgroup控制组自动将postmaster进程的所有子进程添加到同一个控制组。本发明专利技术可以精准地把属于同一个postgresql服务的所有进程都限制在同一个控制组中,实现postgresql服务资源隔离,互不影响。

【技术实现步骤摘要】

本专利技术属于数据库,尤其涉及一种对数据库所有进程进行资源隔离的方法


技术介绍

1、在私有云的环境下,如果同时在物理机上创建多个数据库服务,比如postgresql,可能会存在资源分配不均衡的情况。例如某一个postgresql服务进行大量的业务操作,占用大量的cpu和内存,此时,可能会影响另外的postgresql服务。目前的常规操作是利用cgroup来做资源限制,但是postgresql数据库有比较多的进程,如何能够精准地把属于同一个postgresql服务的所有进程都限制在同一个控制组中?目前的常规做法是在高可用组件agent中定时地探测postgresql服务的postmaster进程,如果postmaster进程的进程标识符pid发生变化说明postgresql数据库已经停止,然后又重新启动了,就将新的postmaster进程pid加入到控制组中,cgroup会自动地将不存在的进程pid从控制组中删除。cgroup还有一个机制,它会自动地将一个已加入到控制组中的进程之后fork的儿子进程也加入到同一个控制组中,但是该进程加入cgroup控制组之本文档来自技高网...

【技术保护点】

1.一种对数据库所有进程进行资源隔离的方法,其特征在于,包括:

2.根据权利要求1所述的对数据库所有进程进行资源隔离的方法,其特征在于,所述创建cgroup控制组并为所述cgroup控制组配置参数的过程包括:

3.根据权利要求1所述的对数据库所有进程进行资源隔离的方法,其特征在于,通过修改源代码在postgres程序启动之前,获取postmaster进程的pid的过程包括:

4.根据权利要求3所述的对数据库所有进程进行资源隔离的方法,其特征在于,所述在父进程pg_ctl fork出子进程postmaster后,启动postgres程序之前,获取post...

【技术特征摘要】

1.一种对数据库所有进程进行资源隔离的方法,其特征在于,包括:

2.根据权利要求1所述的对数据库所有进程进行资源隔离的方法,其特征在于,所述创建cgroup控制组并为所述cgroup控制组配置参数的过程包括:

3.根据权利要求1所述的对数据库所有进程进行资源隔离的方法,其特征在于,通过修改源代码在postgres程序启动之前,获取postmaster进程的pid的过程包括:

4.根据权利要求3所述的对数据库所有进程进行资源隔离的方法,其特征在于,所述在父进程pg_ctl fork出子进程postmaster后,启动postgres程序之前,获取postgres程序的进程pid的过程包括:

5.根据权利要求3所述的对数据库所有进程进行资源隔离的方法,其特征在于,所述父进程pg_ctl fork出子进程postmaster的过程包括:

6.根据权利要求1所述的对数据...

【专利技术属性】
技术研发人员:吴秋国唐钰杰杨焕填
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1