갑자기 사용 가능한 모든 디스크 공간이 /
사라졌습니다.
디스크에 공간을 만들면(예: 약 50GB의 콘텐츠 삭제) 몇 분 후에 여유 디스크 공간이 0으로 돌아갑니다(에 따르면 df
).
분명히 일부 프로세스가 디스크 공간을 빠르게 소모하고 있지만 그것이 무엇인지는 알 수 없습니다.
하지만 한 가지는 확실하다. 어찌됐든 디스크에 10GB보다 큰 파일이 없었고, 1GB보다 큰 파일은 모두 지금보다 훨씬 오래되었기 때문에 작은 파일이 많이 생성될 수밖에 없었다.
디스크 공간을 차지하는 것이 무엇인지 찾는 방법은 무엇입니까?
FWIW, 나는 df
문제가 아닌 문제만 봅니다 du
.
예를 들어 아래에는 60초짜리 "스냅샷 du
" 몇 개가 나와 있습니다 df
. 분리된. (디스크의 일부 공간을 확보한 후 이 작업을 수행했습니다.) du
출력이 안정적으로 유지되지만( 에서 495G
) df
여유 공간이 꾸준히 감소하는 것을 확인하세요. (나는 주어진 조언을 따랐다.여기. IOW, /mnt/root
가리키는 /
. )
# while true; do du -sh /mnt/root && df -h /mnt/root; sleep 60; done
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 824G 12G 99% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 825G 11G 99% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 827G 8.9G 99% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 827G 8.1G 100% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 828G 7.5G 100% /mnt/root
답변1
삭제된 파일을 처리하고 있기 때문에 du
사용된 공간이 등록되지 않았지만 df
등록되었습니다.
삭제된 파일은 소유자 프로세스가 중지된 경우에만 사라지며, 그렇지 않은 경우에는 계속 사용 중입니다.
따라서 범인을 찾으려면 다음을 수행하는 것이 좋습니다.
sudo lsof -nP | grep '(deleted)'
그런 다음 프로세스를 종료하는 데 사용됩니다.
sudo kill -9 $(lsof | grep deleted | cut -d " " -f4)
답변2
당신이 사용할 수있는iotop
가장 많은 디스크 쓰기를 수행하는 프로세스를 확인하세요.
예:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
8 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1]