O que é necessário para ativar cgroups no Linux

3

Eu tenho um kernel squeeze do Debian (linux-image-2.6.32-5-openvz-amd64) que, de acordo com o Doku, deve suportar cgroups. Quando eu olho para a configuração do kernel, ele faz (ou é necessária alguma outra configuração do kernel?)

# zgrep -i cgroup /boot/config-2.6.32-5-openvz-amd64
# CONFIG_CGROUP_SCHED is not set
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_DEVICE=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_NET_CLS_CGROUP=y

Além disso, de acordo com o link , um parâmetro do kernel cgroup_enable = memory pode ser necessário. Eu iniciei o kernel com ele:

# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-openvz-amd64 root=UUID=6332fe39-7eaa-4519-b6c1-e05808284586 ro cgroup_enable=memory quiet console=ttyS0,57600n8

No entanto, o sistema ainda não tem suporte para cgroup! O sistema de arquivos cgroup não pode ser montado porque o tipo de sistema de arquivos não é conhecido pelo sistema:

# mount -t cgroup none /cgroup
mount: unknown filesystem type 'cgroup'

e:

# grep -i cgroup /proc/filesystems
#

Portanto, há um bug ou sinto falta de algo. Alguém pode me dizer o que? Existe algum parâmetro do kernel faltando? Uma configuração de kernel?

    
por divB 22.07.2013 / 00:18

3 respostas

3

Você precisa passar um -o para dizer o que montar.

mount -t cgroup -o memory cgroup_memory /sys/fs/cgroup/memory

E isso é supor que / sys / fs / cgroup está montado em tudo.

mount -t tmpfs cgroup /sys/fs/cgroup

O Ubuntu tem um pacote chamado cgroup-lite que pode fazer tudo isso no boot. Ele não parece estar no Debian, então eu não sei qual o equivalente.

Nota: não posso adicionar comentários, por isso tenho de responder simplesmente à sua pergunta desta forma. Por exemplo: Eu queria perguntar se você tinha verificado seus logs de kernel ( dmesg | grep cgroup ).

    
por 22.01.2014 / 12:24
2

Depende da sua distribuição e versão do kernel. Você pode usar o seguinte script do Docker para testar os recursos relacionados a cgroups e contêiner:

wget https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh -O cgroups_check && chmod +x cgroups_check
./cgroups_check
    
por 19.09.2017 / 16:50
1

Você deve montar assim [1] :

$ mount -t cgroup -o <cgroup_subsystem> name /cgroup/name

cgroup_subsystem pode ser [2] : {blkio , cpu, cpuacct, cpuset, dispositivos, freezer, memória, net_cls, net_prio, ns}

Você também pode montar cgroups com a ajuda de fstab (informações estáticas sobre os sistemas de arquivos). Adicione esta linha ao / etc / fstab para montá-lo na inicialização do sistema com os subsistemas cgroup padrão.

$ cgroup  /sys/fs/cgroup  cgroup  defaults  0   0
    
por 24.08.2015 / 14:38