我有一个运行 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”变量。由于文档没有完全回答问题,阅读相关源代码可能会让您更全面地了解您正在寻找的行为。