Linux

Systemd 日誌文件小於 SystemMaxFileSize

  • January 24, 2017

我有一個執行 CentOS 7 的系統,有超過 1T 的可用磁碟空間。systemd 版本是 219。我已經使用以下設置配置了 journald:

Storage=persistent
SplitMode=none
SystemMaxUse=50G
SystemMaxFileSize=1G
#MaxFileSec=1month (default)

但是,生成的日誌文件小於 1G,它們被切割為大約 500M,如此螢幕截圖所示。

在此處輸入圖像描述

我正在對系統進行激烈的測試,日誌每天填充超過 1G,所以不是 MaxFileSec 正在啟動。我注意到文件的組 id 不同,也許這是一個線索。但是,從螢幕截圖中的時間戳可以看出,頂部的兩個日誌文件似乎不再被填充。

我的問題是,為什麼日誌文件的大小沒有達到配置的1G?

編輯:更正了下面標記所指出的參數名稱,但它在系統上是正確的。

文件中的任何內容都沒有man journald.conf承諾使日誌文件像SystemMaxFileSize=. 文件只承諾不超過該限制。

C 原始碼的業餘閱讀來看,我的解釋是有一個“最小文件大小”,但只有 512k,所以這裡不應該起作用。還有“FILE_SIZE_INCREASE”,與分配增量文件增長有關。我的閱讀是期望文件大小在旋轉發生之前在 SystemMaxFileSize 的 8 MB 內增長。

如果你搜尋整個systemd原始碼樹SystemMaxFileSize,你會發現它被翻譯成上面連結的“.c”文件中的“max_size”變數。

由於文件沒有完全回答問題,閱讀相關原始碼可能會讓您更全面地了解您正在尋找的行為。

引用自:https://serverfault.com/questions/828002