我有以下/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 不知何故陷入了某种循环循环,用空的日志文件填充了磁盘。