Docker
數百個 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 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 不知何故陷入了某種旋轉循環,用空的日誌文件填滿了磁碟。