
我正在嘗試使用 Ubuntu 20.04.3 在樹莓派叢集上設定 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
需要明確設定? - 由於啟用下的值為 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 bug 追蹤器中是這樣建議的。