![Como determinar qual processo está consumindo todo o espaço disponível em disco?](https://rvso.com/image/111997/Como%20determinar%20qual%20processo%20est%C3%A1%20consumindo%20todo%20o%20espa%C3%A7o%20dispon%C3%ADvel%20em%20disco%3F.png)
De repente, todo o espaço disponível em disco /
desapareceu.
Se eu liberar espaço no disco (excluindo ~ 50 GB de material, por exemplo), depois de alguns minutos voltarei a ter 0 espaço disponível em disco (de acordo com df
).
Claramente, algum processo está ocupando espaço em disco rapidamente, mas não consigo descobrir o que é.
Porém, uma coisa é certa: seja o que for, deve estar criando muitos arquivos pequenos, porque não há arquivos maiores que 10GB no disco, e todos os maiores que 1GB são muito mais antigos do que hoje.
Como posso descobrir o que está ocupando espaço em disco?
FWIW, só df
vê o problema, não du
.
Por exemplo, abaixo mostro vários "instantâneos" du
tirados df
dos anos 60. separado. (Fiz isso depois de criar algum espaço no disco.) Observe como du
a saída de permanece estável (em 495G
), mas df
mostra uma quantidade cada vez menor de espaço disponível. (segui a recomendação dadaaqui. IOW, /mnt/root
está apontando para /
.)
# 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
Responder1
Você está lidando com arquivos deletados, por isso du
não registra o espaço utilizado, mas df
registra.
Os arquivos excluídos só desaparecem depois que o processo do proprietário é interrompido; eles permanecem em uso enquanto isso não acontece.
Portanto, para encontrar o processo culpado, recomendo que você faça:
sudo lsof -nP | grep '(deleted)'
Então, por matar o processo.
sudo kill -9 $(lsof | grep deleted | cut -d " " -f4)
Responder2
Você poderia usariotop
para ver quais processos estão executando a maioria das operações de gravação em disco.
Exemplo:
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]