人大金仓数据库KingbaseES cgroup资源组安装及配置

关键字:

KingbaseES、cgroup资源组、安装及配置

资源组基本概念

cgroup是Linux内核提供的一个机制,用于限制、监控和分配进程组的资源(如CPU、内存)等。Kes中cgroup资源组实现cgroup的功能,可以帮助用户将kes进程绑定到一个资源组中,并为不同用户设置不同资源限制。通过资源组功能,用户可以根据自己的需求为不同进程分配资源,并限制它们的使用,以确保系统中进程正常运行。

cgroup安装及配置

(1)、安装libcgroup

上传附件libcgroup-3.0.0.tar.gz,解压后,使用源代码编译安装

./configure

执行该命令如报错cannot compile PAM module without libpam

尝试./configure --disable-pam 命令安装

make

make install

注意: 如服务器配置了yum源,使用yum install libcgroup,yum install libcgroup-tools安装

(2)、运行环境

确认软件包安装后,以root用户创建顶层的cgroup

cgcreate -a username:username -t username:username -g cpu,cpuset,memory,blkio:KingbaseES

其中,username为启动kingbase数据库的用户,不确定使用用户的情况下请使用chmod命令给与所有用户读、写与目录访问权限。

该命令在 cpu,cpuset,memory,blkio 控制器下创建 cgroup "KingbaseES"并给于kingbase用户读写修改权限。

使用该命令后,在/sys/fs/cgroup的 cpu、 memory、 blkio 目录下会看到KingbaseES 目录。

若执行命令时报错,

可使用命令export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 把安装的库路径加上即可。

请注意:

操作系统重启后顶层cgroup需要重新创建。

因资源限额特性会在cgroup挂载点动态创建和删除目录。创建的目录owner为启动kingbase的系统用户。所以如果有多个用户同时启动开启资源限额特性的kingbase服务时可能会有权限问题。

  • 数据库的配置

在kingbase.conf文件中添加依赖库kdb_resource_group,设置resource_group_activated = on,并重启数据库服务。

连接数据库后执行

create extension kdb_resource_group ;

简单测试

create user resgroup_user1 superuser login;

create user resgroup_user2 superuser login;

create user resgroup_user3 superuser login;

create user resgroup_user4 superuser login;

create resource group rgroup1 with (user = 'resgroup_user1');

create resource group rgroup2 with (user = 'resgroup_user2');

create resource group rgroup3 with (user = 'resgroup_user3');

create resource group rgroup4 with (user = 'resgroup_user4');

ALTER RESOURCE GROUP rgroup1 SET (cpu_shares = 10000);

ALTER RESOURCE GROUP rgroup2 SET (cpu_shares = 5000);

ALTER RESOURCE GROUP rgroup3 SET (cpu_shares = 5000);

ALTER RESOURCE GROUP rgroup4 SET (cpu_shares = 10000);

select * from sys_resgroup;

select * from sys_resgroupcapability ;

select * from sys_resauthid;

create function aa() returns void as $$

declare ii integer;

begin

ii:=1;

while true loop

ii = ii + 1;

end loop;

end;

$$ LANGUAGE plpgsql;

--另起三个会话,分别使用resgroup_user1,resgroup_user2,resgroup_user3,resgroup_user4登录并执行以下语句

call aa();

另开一个会话,执行top -c命令,使用taskset -pc 0 pid 绑定4个ksql进程到一个cpu,再次使用top -c命令观察各个进程的cpu占比,是否为2:1:1:2

停止其它三个用户的调用,只使用一个用户调用call aa();观察总CPU占比是否满足限制比例。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值