Disk-Usage

什麼觸發 journald 以釋放空間,以遵守 SystemMaxUse、SystemKeepFree?

  • November 4, 2018

當我進行軟體更新(Ubuntu 升級)並安裝新的 Linux 核心時,有時我的空間不足,這是一件壞事。這是在帶有 systemd 的 Ubuntu Bionic 18.04 上,因此安裝了 journald。

Journald 預設配置為為其他程序保留驅動器上 15% 的空間 ( SystemKeepFree),並最多使用 10% 的空間 ( SystemMaxUse)。但它往往超過了這些價值觀。

那麼是什麼觸發了吸塵操作呢?

當另一個操作需要它時,我們如何讓它快速清理空間?

有沒有辦法在日誌中搜尋以前的清理操作 - 它們是否被記錄?

請注意,缺少 grep 功能 - 為什麼?(並參見Ubuntu 錯誤 1751657

$ journalctl --grep journald
Compiled without pattern matching support

我不知道為什麼它超過了SystemMaxUse=,對不起。

編輯:在評論中,@nealmcb 贊同下面的答案,並建議該期刊僅超過SystemKeepFree=,而不是超過SystemMaxUse=

當另一個操作需要它時,我們如何讓它快速清理空間?

我認為您通常不能依賴它。 SystemKeepFree=以比以下方式更不可靠的方式工作SystemMaxUse=

如果文件系統快滿了,並且在 systemd-journald 啟動時違反了 SystemKeepFree= 或 RuntimeKeepFree=,則限制將提高到實際空閒的百分比。這意味著如果在創建日誌文件之前有足夠的可用空間,並且隨後有其他原因導致文件系統填滿,則 journald 將停止使用更多空間,但它不會刪除現有文件以再次減少佔用空間。 .

如果您在正在執行的系統上更改配置文件,您可以通過執行使其重新讀取systemctl restart systemd-journald

您可以使用以下命令之一手動減少空間journalctl --vacuum...,例如journalctl --vacuum-size=500M.

似乎有記錄清理的程式碼,但在最近的版本中,消息優先級設置為“調試”。大概這意味著預設情況下會抑制消息。請參閱:systemd“Vacuuming done, freed 0 bytes”消息是什麼意思?

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