Estamos executando um cluster Beowulf usando a distribuição Scyld da Penguin Computing, e parece que os cgroups são configurados no nó principal, mas não nos nós de computação. Estou tentando configurar o Slurm para usar o proctrack/cgroup
plugin, mas ele não funcionará nos nós de computação.
Por exemplo, posso listar os cgroups no nó principal, mas não em um nó de cálculo:
$ 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
$
Se eu olhar para o ponto de montagem do sistema cgroup, ele é montado no nó principal, mas não nos nós de computação. Os nós computacionais só têm um diretório vazio naquele local.
$ 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
$
Eu suponho que tenho que iniciar algum serviço cgroup nos nós de computação, mas como? Eu encontrei o RHEL documentação nos cgroups, mas ele só descreve usando-os, não a configuração inicial.
man7.org descreve como montar controladores de cgroups, mas diz o seguinte:
Note that on many systems, the v1 controllers are automatically mounted under /sys/fs/cgroup; in particular, systemd(1) automatically creates such mount points.
Isso explica por que não consigo ver nenhuma configuração para cgroups no nó principal: eles são montados automaticamente. Por que eles não são montados automaticamente nos nós de computação?
Parece que os drivers estão carregados no nó de cálculo, mas não estão montados:
$ 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
Eu tentei pesquisar por "cgroup" em /var/log/messages
, e achei o nó principal inicializando os subsistemas do cgroup, mas nada dos nós computacionais.