Como descubro o que está usando todo o espaço da minha partição?

8

Estou em uma grande instância nos servidores EC2 da Amazon. Eu corro o comando df e obtenho:

root@db:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  9.1G  284M  98% /
tmpfs                 3.8G     0  3.8G   0% /lib/init/rw
varrun                3.8G  116K  3.8G   1% /var/run
varlock               3.8G     0  3.8G   0% /var/lock
udev                  3.8G   80K  3.8G   1% /dev
tmpfs                 3.8G     0  3.8G   0% /dev/shm
/dev/sdb              414G  957M  392G   1% /mnt
/dev/sdf               50G   12G   35G  26% /byp
/dev/sdk               99G   31G   63G  33% /backups

Eu então executo o comando du e obtenho:

root@db:/# du -s -h /*
31G     /backups
5.5M    /bin
136K    /boot
12G     /byp
80K     /dev
5.8M    /etc
12K     /home
70M     /lib
11M     /lib32
0       /lib64
16K     /lost+found
759M    /mnt
4.0K    /opt
du: cannot access '/proc/6917/task/6917/fd/4': No such file or directory
du: cannot access '/proc/6917/fd/4': No such file or directory
0       /proc
31M     /root
7.7M    /sbin
4.0K    /selinux
4.0K    /srv
0       /sys
11M     /tmp
1.1G    /usr
114M    /var

Se você notar, quando somar todos os tamanhos na saída do comando du de diretórios não montados, você não chegará perto do 9.1G como visto no comando df.

Isso significa que eu tenho um disco ruim? Se sim, como posso corrigir isso?

    
por sheats 03.09.2009 / 20:19

3 respostas

19

É perfeitamente possível que você tenha um arquivo excluído muito grande (ou muitos pequenos) em que um processo ainda possui um identificador de arquivo aberto. A maneira de encontrá-los é executar

# lsof | grep "deleted"

Se você vir muitas linhas que terminam com "(excluído)", você pode encontrar o Id do processo que as abriu e reiniciá-lo. Quando isso acontecer, seu espaço em disco deve retornar.

Se isso não resolver, recomendo um fsck.

    
por 03.09.2009 / 20:25
5

Existem várias razões pelas quais du não é igual a df. Veja as respostas para esta pergunta .

Alguns são montagens de sobreposição, muitos arquivos pequenos e um tamanho de bloco maior e arquivos excluídos que ainda estão em uso. As montagens de sobreposição são quando você monta um sistema de arquivos em um ponto de montagem que possui arquivos, portanto, du não os vê.

A principal diferença entre os dois é que o df apenas verifica o superbloco e confia nele, enquanto o du verifica todos os arquivos que ele é capaz de ver e adiciona-os. Consulte este link da IBM para obter informações sobre o superbloco.

    
por 03.09.2009 / 20:26
4

Sempre use a opção -x com du quando estiver perseguindo problemas como este. Ele impede que o usuário cruze sistemas de arquivos.

    
por 03.09.2009 / 21:33