수백 개의 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 데몬 로그 드라이버가 로 설정된 경우에도 json-file발생 하지만 dockerd가 실행 중인 경우에만 발생합니다.


/편집 2: 전혀 도커가 아닐 수도 있습니다. docker가 실행되지 않는 경우에도 동일한 동작이 나타나지만 속도가 느려집니다. 그러나 의 모든 줄을 주석 처리한 후에 journal.conf문제가 사라졌습니다. SystemKeepFree=10G처음에 하드 드라이브의 여유 공간이 10G 미만인 경우 Journald가 로그 파일을 매우 빠르게 회전하기 시작하여 디스크를 채우는 것으로 의심됩니다 .

답변1

journald.conf기본값(빈 파일)으로 재설정한 후 문제가 사라졌습니다. 설정으로 인해 SystemKeepFree=10G처음부터 10GB의 여유 공간이 없기 때문에 저널링이 디스크를 빈 로그 파일로 채우는 일종의 루프에 갇힌 것 같습니다.

관련 정보