我正在尝试使用 Ubuntu 20.04.3 在 Raspberry Pi 集群上设置 kubernetes 集群。在许多可用的在线指南中,其中一个步骤如下:
编辑/boot/firmware/cmdline.txt
并cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1
在末尾添加。
上述步骤未作任何解释。因此,为了检查我当前的配置(不应用上述启动配置),我运行/proc/cgroups
以下命令,得到以下输出:
#subsys_name hierarchy num_cgroups enabled
cpuset 8 1 1
cpu 4 43 1
cpuacct 4 43 1
blkio 7 43 1
memory 0 51 0
devices 10 43 1
freezer 3 2 1
net_cls 2 1 1
perf_event 5 1 1
net_prio 2 1 1
pids 6 48 1
rdma 9 1 1
由于需要禁用交换,我已检查它是否已禁用。因此,我有以下问题:
- 我相信已启用的输出,
cpuset
因为它的启用列值为 1。我说得对吗?如果是这样,是否cgroup_enable=cpuset
需要明确设置? - 由于 enabled 下的值为 0,因此我认为它未启用。我说得对吗?如果是这样,那么 和 的作用
memory
是什么?为什么我必须同时设置它们?cgroup_enable=memory
cgroup_memory=1
- 设置的目的是什么
swapaccount=1
?如果禁用了交换,设置它是否有意义?
cgroups
对我来说是一个新话题,因此我想更好地了解每个命令的作用,而不是盲目地复制它们。
编辑:我查看了内核源代码,发现没有调用任何函数cgroup_memory
。是的,存在一个同名函数,但它绑定到一个命令cgroup.memory
。那么,所有在线博客讨论的都是cgroup_memory
照搬打字错误吗?
答案1
对于 2,似乎这两个标志都是 Raspberry Pi Linux 内核特有的。cgroup_memory=1
可能不再需要,它意味着向后兼容标志。因此,只要cgroup_memory=0
不存在,cgroup_enable=memory
就足够了。这条评论Raspberry Pi 错误跟踪器中建议了这一点。