我目前正在尝试从 cgroup 文件系统读取内存和 IO 压力。我可以确认我确实正在运行 cgroupsv2,因为 的输出
cat /sys/fs/cgroup/cgroup.controllers
给了我
cpuset cpu io memory pids
在/sys/fs/cgroup
文件夹中我有以下文件/文件夹
cgroup.controllers cgroup.procs cgroup.threads cpu.stat user.slice
cgroup.max.depth cgroup.stat cpuset.cpus.effective init.scope memory.stat
cgroup.max.descendants cgroup.subtree_control cpuset.mems.effective io.stat system.slice
不过我也希望每个控制器都有相应的压力文件
cpu.pressure io.pressure memory.pressure
系统正在Raspbian GNU/Linux 10 (buster)
运行systemd.unified_cgroup_hierarchy=1
/boot/cmdline.txt
答案1
问题在于内核未使用 PSI 功能进行编译。要检查您的内核是否具有此功能,请首先检查内核配置。使用sudo modprobe configs; zcat /proc/config.gz > .config
和grep "CONFIG_PSI" .config
检查其是否已设置。如果被禁用,则可以通过在引导期间传递内核命令行CONFIG_PSI
来启用它。psi=1
但是,如果 grep 返回,#CONFIG_PSI is not set
那么您需要重新编译内核以启用 PSI。