Debian

Debian Buster:cgmanager 失敗,但為什麼?

  • July 2, 2020

系統是 Debian Buster - 我正在嘗試讓 cgroups 工作,遵循我能夠在網上找到的文件(主要是Redhat’s Guide),但我有一個問題:

# systemctl status cgmanager
● cgmanager.service - Cgroup management daemon
  Loaded: loaded (/lib/systemd/system/cgmanager.service; enabled; vendor preset: enabled)
  Active: failed (Result: exit-code) since Wed 2020-07-01 07:20:57 UTC; 1h 13min ago
 Process: 416 ExecStart=/sbin/cgmanager -m name=systemd (code=exited, status=1/FAILURE)
Main PID: 416 (code=exited, status=1/FAILURE)

Jul 01 07:20:56 cgroups systemd[1]: cgmanager.service: Failed with result 'exit-code'.
Jul 01 07:20:57 cgroups systemd[1]: cgmanager.service: Service RestartSec=100ms expired, scheduling restart.
Jul 01 07:20:57 cgroups systemd[1]: cgmanager.service: Scheduled restart job, restart counter is at 5.
Jul 01 07:20:57 cgroups systemd[1]: Stopped Cgroup management daemon.
Jul 01 07:20:57 cgroups systemd[1]: cgmanager.service: Start request repeated too quickly.
Jul 01 07:20:57 cgroups systemd[1]: cgmanager.service: Failed with result 'exit-code'.
Jul 01 07:20:57 cgroups systemd[1]: Failed to start Cgroup management daemon.

stracecgmanager 上顯示:

# strace -o cgmanager.trc -f /sbin/cgmanager -m name=systemd
...
604   mkdir("/run", 0755)               = -1 EEXIST (File exists)
604   mkdir("/run/cgmanager", 0755)     = -1 EEXIST (File exists)
604   mkdir("/run/cgmanager/fs", 0755)  = -1 EEXIST (File exists)
604   mkdir("/run/cgmanager/agents", 0755) = -1 EEXIST (File exists)
604   openat(AT_FDCWD, "/proc/self/cgroup", O_RDONLY) = 4
604   fstat(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
604   read(4, "11:cpu,cpuacct:/\n10:cpuset:/\n9:d"..., 1024) = 316
604   close(4)                          = 0
604   mkdir("/sys/fs/cgroup/.cgm_unified", 0755) = -1 EEXIST (File exists)
604   mount("cgroup", "/sys/fs/cgroup/.cgm_unified", "cgroup", 0, "__DEVEL__sane_behavior") = -1 ENOENT (No such file or directory)
604   write(2, "cgmanager: Error mounting unifie"..., 62) = 62
604   write(2, "cgmanager: failed to collect cgr"..., 47) = 47
604   exit_group(1)                     = ?
604   +++ exited with 1 +++

也許問題是我找不到任何關於如何在最近的 Debian 系統上執行此操作的好的、最新的文件。在 Debian 中我需要 cgmanager 嗎?

您連結的文件適用於 RedHat 6,它具有非常舊的核心(2010 年的核心版本 2.6.32),並且沒有cgroup包含在 Debian Buster 中的最新更新(2019 年的核心版本 4.19)。

我相信 RedHat 6 只有 Control Groups v1 可用,而現在還有 Control Groups v2 可供選擇。Linux 核心文件可能是比發布的 RedHat 更好的資源cgroups-v1cgroups-v2如果您喜歡 RedHat 文件,RedHat 8 文件關於使用控制組來限制應用程序將更接近您的 Debian Buster 核心。

預設情況下,大多數systemd係統已經在使用cgroups,因此它們應該已經在工作(您可以檢查mount | grep cgroup)。至於你是否需要cgmanager,這主要取決於你打算用cgroups 做什麼,以及是否cgmanager讓你更容易處理。

引用自:https://unix.stackexchange.com/questions/596050