是什么触发journald释放空间,以遵守SystemMaxUse、SystemKeepFree?

是什么触发journald释放空间,以遵守SystemMaxUse、SystemKeepFree?

当我进行软件更新(Ubuntu 升级)并安装新的 Linux 内核时,有时我会耗尽空间,这是一件坏事。这是在Ubuntu Bionic 18.04上,带有systemd,所以安装了journald。

默认情况下,Journald 配置为在驱动器上保留 15% 的空间用于其他进程 ( SystemKeepFree),并最多使用 10% 的空间 ( SystemMaxUse)。但它往往超出了这些价值观。

那么什么触发了吸尘操作呢?

当另一个操作需要它时,我们如何让它快速清理空间?

有没有办法在日志中搜索以前的清理操作 - 它们是否已记录?

请注意,缺少 grep 功能 - 为什么? (并且看到Ubuntu 错误 1751657

$ journalctl --grep journald
Compiled without pattern matching support

答案1

我不知道为什么它超出了SystemMaxUse=,抱歉。

编辑:在评论中,@nealmcb 认可下面的答案,并建议该期刊仅超过SystemKeepFree=,而不超过SystemMaxUse=

当另一个操作需要它时,我们如何让它快速清理空间?

我认为一般来说你不能依赖这一点。 SystemKeepFree=其工作方式不如以下可靠SystemMaxUse=

如果文件系统几乎已满,并且在启动 systemd-journald 时违反了 SystemKeepFree= 或 RuntimeKeepFree= 的规定,则限制将提高到实际空闲的百分比。这意味着,如果在创建日志文件之前有足够的可用空间,并且随后其他原因导致文件系统填满,则日志将停止使用更多空间,但它也不会删除现有文件以再次减少占用空间。

如果更改正在运行的系统上的配置文件,可以通过运行来重新读取它systemctl restart systemd-journald

您可以使用命令之一手动减少空间journalctl --vacuum...,例如journalctl --vacuum-size=500M.

似乎有代码可以记录清理,但在最近的版本中,消息优先级设置为“调试”。据推测,这意味着默认情况下会抑制消息。看:systemd“清理完成,释放 0 字节”消息是什么意思?

相关内容