Мы запускаем кластер Beowulf с использованием дистрибутива Scyld от Penguin Computing, и похоже, что контрольные группы настроены на головном узле, но не на вычислительных узлах. Я пытаюсь настроить Slurm на использование proctrack/cgroup
плагин, но он не будет работать на вычислительных узлах.
Например, я могу перечислить контрольные группы на головном узле, но не на вычислительном узле:
$ bpsh -1 systemd-cgls
├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
├─user.slice
...
$ bpsh 1 systemd-cgls
Failed to create bus connection: No such file or directory
$
Если я посмотрю на точку монтирования для системы cgroup, она будет установлена на головном узле, но не на вычислительных узлах. У вычислительных узлов просто пустой каталог в этом месте.
$ bpsh -1 findmnt /sys/fs/cgroup
TARGET SOURCE FSTYPE OPTIONS
/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755
$ bpsh 1 findmnt /sys/fs/cgroup
$ bpsh 1 ls -l /sys/fs/cgroup
total 0
$
Я предполагаю, что мне нужно запустить некоторую службу cgroup на вычислительных узлах, но как? Я нашел RHEL документация в cgroups, но здесь описывается только их использование, а не первоначальная настройка.
man7.org описывает, как монтировать контроллеры cgroups, но говорит следующее:
Обратите внимание, что во многих системах контроллеры v1 автоматически монтируются в / sys / fs / cgroup; в частности, systemd (1) автоматически создает такие точки монтирования.
Это объясняет, почему я не вижу никакой конфигурации для групп на головном узле: они просто монтируются автоматически. Почему они не монтируются автоматически на вычислительных узлах?
Похоже, драйверы загружены на вычислительный узел, но не смонтированы:
$ cat /proc/cgroups
#subsys_name hierarchy num_cgroups enabled
cpuset 6 1 1
cpu 4 1 1
cpuacct 4 1 1
memory 2 1 1
devices 3 1 1
freezer 10 1 1
net_cls 7 1 1
blkio 5 1 1
perf_event 9 1 1
hugetlb 8 1 1
pids 11 1 1
net_prio 7 1 1
$ bpsh 0 cat /proc/cgroups
#subsys_name hierarchy num_cgroups enabled
cpuset 0 1 1
cpu 0 1 1
cpuacct 0 1 1
memory 0 1 1
devices 0 1 1
freezer 0 1 1
net_cls 0 1 1
blkio 0 1 1
perf_event 0 1 1
hugetlb 0 1 1
pids 0 1 1
net_prio 0 1 1
Я пробовал искать "cgroup" в /var/log/messages
, и я обнаружил, что головной узел инициализирует подсистемы cgroup, но ничего из вычислительных узлов.