数百个 8MB 空日志档案填满了我的硬盘

数百个 8MB 空日志档案填满了我的硬盘

我有以下/etc/systemd/journald.conf配置:

[Journal]
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
SystemMaxUse=5G
SystemKeepFree=10G
SystemMaxFileSize=1G
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg

/var/log/journal注意到数百个期刊档案,在检查时是空的journalctl --file ...

-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:56 [email protected]~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:56 [email protected]~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:56 [email protected]~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:57 [email protected]~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:57 [email protected]~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:57 [email protected]~

当我运行时journalctl --vacuum-size=500M,所有文件都会消失,但它们很快就会再次出现,直到几分钟后我的硬盘已满。

仅当 docker 守护进程正在运行时才会发生这种情况,该守护进程配置为"log-driver": "journald".我找不到任何关于为什么会发生这种情况的信息。我该如何调试这个,什么可能导致这种行为?


/Edit:即使 docker 守护进程 log-driver 设置为json-file,也会出现此情况,但仅当 dockerd 正在运行时才会出现。


/编辑2:它可能根本就不是docker。即使 docker 没有运行,我也注意到同样的行为,但速度较慢。然而,在注释掉 中的所有行后journal.conf,问题就消失了。我怀疑SystemKeepFree=10G当硬盘驱动器上最初可用空间少于 10G 时,journald 开始非常快速地旋转日志文件并填满磁盘。

答案1

journald.conf重置为默认值(空文件)后问题就消失了。我怀疑,由于设置SystemKeepFree=10G并且一开始就没有 10GB 可用空间,journald 不知何故陷入了某种循环循环,用空的日志文件填充了磁盘。

相关内容