cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1 的用途是什么

cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1 的用途是什么

我正在尝试使用 Ubuntu 20.04.3 在 Raspberry Pi 集群上设置 kubernetes 集群。在许多可用的在线指南中,其中一个步骤如下:

编辑/boot/firmware/cmdline.txtcgroup_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

由于需要禁用交换,我已检查它是否已禁用。因此,我有以下问题:

  1. 我相信已启用的输出,cpuset因为它的启用列值为 1。我说得对吗?如果是这样,是否cgroup_enable=cpuset需要明确设置?
  2. 由于 enabled 下的值为 0,因此我认为它未启用。我说得对吗?如果是这样,那么 和 的作用memory是什么?为什么我必须同时设置它们?cgroup_enable=memorycgroup_memory=1
  3. 设置的目的是什么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 错误跟踪器中建议了这一点。

相关内容