配置资源组

通过检查系统启动期间默认挂载的文件系统来验证您的环境中配置的 cgroup 版本:

stat -fc %T /sys/fs/cgroup/

对于 cgroup v1,输出是 tmpfs。对于 cgroup v2,输出是 cgroup2fs

注意!
当前版本中仅支持 cgroup v1,如需使用 cgroup v2 需升级至 YMatrix 6.4.x 版本及更高版本。

如当前为 cgroup v2,可通过以下命令切换为 cgroup v1。请以 root 身份运行以下命令:

  • Red Hat 8/Rocky 8/Oracle 8
grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="systemd.unified_cgroup_hierarchy=0 systemd.legacy_systemd_cgroup_controller"
  • Ubuntu
vim /etc/default/grub
# add or modify: GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0"
update-grub

配置 cgroup v1

1.在集群中的每个节点上操作:

注意!
需使用超级用户或具有 sudo 访问权限的用户才能编辑此文件。

vi /etc/cgconfig.conf

在配置文件中添加以下信息。

group gpdb {
     perm {
         task {
             uid = mxadmin;
             gid = mxadmin;
         }
         admin {
             uid = mxadmin;
             gid = mxadmin;
         }
     }
     cpu {
     }
     cpuacct {
     }
     cpuset {
     }
     memory {
     }
} 

此内容配置了由 mxadmin 用户管理的 CPU、CPU 核算、CPU 核心集以及内存控制组。

2.为 YMatrix 集群每一个节点开启 cgroup 服务。

cgconfigparser -l /etc/cgconfig.conf 
systemctl enable cgconfig.service
systemctl start cgconfig.service

3.确定节点的 cgroup 目录挂载点

grep cgroup /proc/mounts 
  • 第一行输出为 cgroup 目录挂载点 /sys/fs/cgroup
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0                                                             
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0                                                                                                      
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0                                           
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_prio,net_cls 0 0                         
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0                                                 
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0                                           
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0                                   
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0                                     
cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0                                           
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0                                             
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0                                             
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0  

4.检验是否正确配置

ls -l <cgroup_mount_point>/cpu/gpdb
ls -l <cgroup_mount_point>/cpuset/gpdb
ls -l <cgroup_mount_point>/memory/gpdb

如果目录存在,并且属主是 mxadmin:mxadmin,说明成功配置 cgroup 对 YMatrix 数据库的资源管理。