div*_*ivB 5 linux-kernel lxc cgroup
我有一个 Debian 挤压内核 (linux-image-2.6.32-5-openvz-amd64),根据 Doku 应该支持 cgroups。当我查看内核配置时,确实如此(或者是否需要其他一些内核配置?)
# 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
Run Code Online (Sandbox Code Playgroud)
此外,根据http://wiki.debian.org/LXC,内核参数 cgroup_enable=memory 可能是必要的。我用它启动内核:
# 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
Run Code Online (Sandbox Code Playgroud)
但是,系统仍然没有cgroup支持!无法挂载 cgroup 文件系统,因为系统甚至不知道文件系统类型:
# mount -t cgroup none /cgroup
mount: unknown filesystem type 'cgroup'
Run Code Online (Sandbox Code Playgroud)
和:
# grep -i cgroup /proc/filesystems
#
Run Code Online (Sandbox Code Playgroud)
所以要么有错误,要么我错过了一些东西。谁能告诉我什么?是否缺少内核参数?内核配置?
您必须传递 -o 来告诉它要安装什么。
mount -t cgroup -o memory cgroup_memory /sys/fs/cgroup/memory
Run Code Online (Sandbox Code Playgroud)
假设 /sys/fs/cgroup 已安装。
mount -t tmpfs cgroup /sys/fs/cgroup
Run Code Online (Sandbox Code Playgroud)
Ubuntu 有一个名为cgroup-lite的软件包,它可以在启动时完成所有这些操作。它似乎不在 Debian 中,所以我不确定等效的可能是什么。
注意:我无法添加评论,所以我只能这样简单地回答你的问题。例如:我想问您是否检查过内核日志(dmesg | grep cgroup)。