暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 用户、会话、业务级 资源隔离(cgroup, 进程组, pg_cgroups) - resource manage

digoal 2019-05-14
2240

作者

digoal

日期

2019-05-14

标签

PostgreSQL , cgroup , application_name , 用户 , 会话 , 组 , cpu , io , memory , 进程组


背景

PG为进程架构,利用Linux的cgroup功能,可以限定进程的资源使用。

例如,

1、应用按不同的业务,使用不同的数据库用户连接数据库。

2、应用按不同的业务,划分了不同的数据库。

3、不同的应用使用了同样的用户连接同样的数据库,使用application_name区分这些应用。

每一个连接对应一个数据库进程。将这些进程分配到对应CGROUP资源组,限定资源。

目前edb epas采用类似原理,支持了数据库的用户级资源隔离。

《PostgreSQL 商用版本EPAS(阿里云ppas(Oracle 兼容版)) HTAP功能之资源隔离管理 - CPU与刷脏资源组管理》

按核限定

pic
1、选择按核数限定

2、选择库级、用户级、application_name级。

按权重限定(限定总核数)

pic

设置总共最多用多少核。

权重相加,等于限定的总核数(例如有64核,限定只使用32核,并将这32核按权重分配给对应的cgroup组。)。

2、选择库级、用户级、application_name级

实际上目前有个插件,实现了一些cgroup的接口,通过调用函数可以实现资源组的设置和管理.

https://github.com/MasahikoSawada/pg_cgroup

参考

https://github.com/MasahikoSawada/pg_cgroup

https://github.com/cybertec-postgresql/pg_cgroups

《手工清理 cgroup中的page cache》

《Linux cgroup - memory子系统讲解》

《为什么cgroup blkio不能限制分区》

《Linux cgroup - cpu与cpuset子系统讲解》

《Linux cgroup资源隔离各个击破之 - io隔离》

《Linux中进程内存RSS与cgroup内存的RSS统计 - 差异》

《cgroup 术语和规则》

《cgroup告诉你如何计算 PostgreSQL 数据库实例用了多少内存》

《PostgreSQL 商用版本EPAS(阿里云ppas(Oracle 兼容版)) HTAP功能之资源隔离管理 - CPU与刷脏资源组管理》

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论