在我的一台装有 Debian Buster 的机器上(附带系统241),我想通过 观看资源使用情况systemd-cgtop
。当我启动这个实用程序时,我看到了内存使用情况,但没有看到 CPU 使用情况和 I/O 使用情况。显然,CPU 计数已关闭。
继system.conf 的联机帮助页,我将此行放入/etc/systemd/system.conf
(所有其他行已被注释掉):
DefaultCPUAccounting=yes
这按预期工作(当然是在systemd
通过重新加载之后systemctl daemon-reexec
)。 [注意:事实上,我仍然只看到某些切片的 CPU 使用情况,而不是全部,但这是另一个故事/问题。 ]
但是,该手册页不建议更改/etc/systemd/system.conf
.相反,我们应该创建一个包含所需行的嵌入式配置文件。我遵循了该建议,创建了目录/etc/systemd/system.conf.d
,并创建了文件/etc/systemd/system.conf.d/10-pp.conf
。然后我从 中删除了上面显示的行/etc/systemd/system.conf
,将其放入/etc/systemd/system.conf.d/10-pp.conf
并发出systemctl daemon-reexec
。
这让我回到了开始:systemd-cgtop
根本没有显示 CPU 使用情况。
我可以随时重现当时的情况。无论插入配置文件如何,我都必须更改主配置文件以启用 CPU 记帐。
我究竟做错了什么?
聚苯乙烯
我已经验证没有其他插入配置文件可能会伤害我的。也就是说,
/usr/lib/systemd/system.conf.d/
不存在,也不存在/usr/local/lib/systemd/system.conf.d/
,也不存在/run/systemd/system.conf.d/
。我已经验证了我创建的目录和文件的访问权限。它们分别类似于其他(默认安装)
.d
目录及其中文件的权限。
答案1
我不确定是否应该删除该问题,因为问题是由我自己造成的。然而,对于每个即将犯同样新手错误的人来说:
在嵌入式配置文件中,我忘记添加该行
[Manager]
一开始。仅此而已 - 愚蠢的我。我真的应该记住这一点每一个与 systemd 相关的配置必须位于适当的部分;它与例如服务单位中的相同。