Настройка групп ресурсов

Проверьте версию cgroup, настроенную в вашей системе, посмотрев файловую систему, монтируемую по умолчанию при загрузке:

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

Для cgroup v1 вывод будет tmpfs. Для cgroup v2cgroup2fs.

Примечание!
В текущей версии поддерживается только 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
    # добавьте или измените: GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0"
    update-grub

  1. Выполните следующие шаги на каждом узле кластера:

Примечание!
Для редактирования этого файла необходимы права суперпользователя или sudo.

vi /etc/cgconfig.conf

Добавьте в конфигурационный файл следующее содержимое:

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

Эта конфигурация создаёт группы контроля для ЦПУ, учёта использования ЦПУ, привязки к ядрам процессора и ограничения памяти, управляемые пользователем mxadmin.

  1. Включите службу cgroup на каждом узле кластера YMatrix:
cgconfigparser -l /etc/cgconfig.conf
systemctl enable cgconfig.service
systemctl start cgconfig.service
  1. Определите точку монтирования 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
  1. Проверьте конфигурацию:
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.