关键字
KingbaseES,最低和最高配额,不会独占
问题描述
如何在金仓数据库KingbaseES中以最低和最高配额组件提供数据库服务器资源配额机制,确保用户能使用或不会独占数据库服务器受控资源?
解决方案
1、修改配置文件kingbase.conf,开启资源限额
resource_group_activated = on
resource_group_dev_io = '8:0' --设置磁盘编号和副编号 查看数据目录位置 用lsblk命令定位磁盘
2、为用户授权
chown –R yhgao:yhgao /sys/fs/cgroup/
3、重启服务后,连接ksql
-创建用户
Create user resuser with superuser;
--创建资源组1
CREATE RESOURCE GROUP rgroup1 WITH (cpu_shares=512);
--创建资源组2
CREATE RESOURCE GROUP rgroup2 WITH (cpu_shares=512);
--关联数据库用户
alter user system with resource group rgroup1;
alter user resuser with resource group rgroup2;
--查询资源组
select * from pg_resgroup;
4、设置cpu使用资源上限为70%
echo 70000 > /sys/fs/cgroup/cpu/kingbase/cpu.cfs_quota_us
5、另起两个ksql连接,使用system用户登录,分别执行以下语句,压测cpu
\set SQLTERM /
declare
i int;
BEGIN
i := 1;
while i is not null LOOP
select 1 into i from dual;
end loop;
END;
/
\set SQLTERM
6、另起一个shell窗口,使用top命令查看cpu使用情况,可知两kingbase进程可使用cpu总占比为70%
参考资料
更多金仓数据库KingbaseES信息,详见 KingbaseES产品手册