Como determinar qual processo está consumindo todo o espaço em disco disponível?

5

De repente, todo o espaço em disco disponível em / desapareceu.

Se eu criar espaço no disco (excluindo ~ 50GB de material, por exemplo), depois de alguns minutos, volto para 0 de espaço em disco disponível (de acordo com df ).

Claramente, alguns processos estão ocupando espaço em disco rapidamente, mas não consigo descobrir o que é.

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 que os atuais.

Como posso encontrar o que está ocupando espaço em disco?

FWIW, somente df vê o problema, não du .

Por exemplo, abaixo, mostro vários "instantâneos" de du e df tirados de 60s. apart. (Eu fiz isso depois de ter feito algum espaço no disco.) Observe como a saída de du permanece estável (em 495G ), mas df mostra uma quantidade de espaço disponível em constante encolhimento. (Eu segui a recomendação dada aqui . 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
    
por kjo 22.05.2017 / 21:12

2 respostas

6

Você está lidando com arquivos excluídos, é por isso que du não registra o espaço usado, mas df faz.

Os arquivos excluídos só desaparecem depois que o processo do proprietário é interrompido; eles permanecem em uso enquanto isso não acontece.

Então, para encontrar o processo culpado, recomendo que você faça:

sudo lsof -nP | grep '(deleted)'
    
por 22.05.2017 / 21:59
2

Você pode usar iotop 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]
    
por 22.05.2017 / 21:21

Tags