Docker

數百個 8MB 的空日誌檔案填滿了我的硬碟

  • May 10, 2021

我有以下/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 system@0005c1cdba211b70-d20ede1ca4e073e9.journal~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:56 system@0005c1cdba212b29-70bbf07dbed15c4d.journal~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:56 system@0005c1cdbac634c6-d54bf6a5900b4ce2.journal~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:57 system@0005c1cdbac67497-e349b1b6f7b2547f.journal~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:57 system@0005c1cdbac6b9d4-1b83111d87f36eb9.journal~
-rw-r-----+ 1 root systemd-journal   8388608 May  8 10:57 system@0005c1cdbac702c1-e24673835c81e2b6.journal~

當我執行時journalctl --vacuum-size=500M,所有文件都消失了,但它們很快又出現了,直到幾分鐘後我的硬碟驅動器已滿。

這僅在 docker 守護程序執行時發生,該守護程序配置為"log-driver": "journald". 我找不到任何關於為什麼會發生這種情況的資訊。我該如何調試這個,什麼可能導致這種行為?


/Edit:即使將 docker daemon log-driver 設置為,也會出現此json-file問題,但僅在 dockerd 執行時才會出現。


/Edit 2:畢竟它可能不是 docker。即使 docker 沒有執行,我也注意到了同樣的行為,但速度較慢。但是,在註釋掉 中的所有行後journal.conf,問題就消失了。我懷疑 SystemKeepFree=10G當硬碟驅動器上的可用空間最初少於 10G 時設置,journald 開始非常快速地旋轉日誌文件並填滿磁碟。

journald.conf重置為預設值(空文件)後問題消失了。我懷疑設置SystemKeepFree=10G並沒有 10GB 的可用空間開始,journald 不知何故陷入了某種旋轉循環,用空的日誌文件填滿了磁碟。

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