Não há mais espaço em disco no servidor [duplicado]

10

depois que algum código php errado foi excedido em um de nossos servidores, que tentou abrir um arquivo que não existia, acabamos com enormes arquivos de log do apache que ainda não estavam configurados para rodar. Acabamos de deletar esses arquivos de log. Depois disso, vimos que nosso disco não estava realmente limpo. A saída de um df -h mostra o seguinte

Filesystem              Size  Used Avail Use% Mounted on
/dev/sda1                18G   16G  1.1G  94% /
udev                    999M   12K  999M   1% /dev
tmpfs                   403M  848K  402M   1% /run
none                    5.0M     0  5.0M   0% /run/lock
none                   1007M   72K 1007M   1% /run/shm
/dev/mapper/vg_ftp-ftp  9.9G  5.3G  4.2G  56% /mnt/local/ftp

Os inodes parecem estar bem também

Filesystem              Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1              1168128 227009  941119   20% /
udev                    215094    442  214652    1% /dev
tmpfs                   219463    384  219079    1% /run
none                    219463      6  219457    1% /run/lock
none                    219463      3  219460    1% /run/shm
/dev/mapper/vg_ftp-ftp  655360   1553  653807    1% /mnt/local/ftp

Após investigar com du e ncdu ainda não conseguimos encontrar onde o espaço desapareceu. Mais tarde nós pensamos que eram manipuladores de arquivos abertos que ainda estavam lá, então fizemos o lsof | grep deleted que nos deu alguns arquivos, incluindo o / sbin / mountall que é um pouco assustador.

mountall    287          root  txt       REG        8,1     120404       9334 /sbin/mountall (deleted)
mysqld      615         mysql    4u      REG        8,1          0        416 /tmp/iba1fEnV (deleted)
mysqld      615         mysql    5u      REG        8,1          0        899 /tmp/ibcxXlJG (deleted)
mysqld      615         mysql    6u      REG        8,1          0        900 /tmp/ibdby44r (deleted)
mysqld      615         mysql    7u      REG        8,1          0        901 /tmp/ibYaPXvd (deleted)
mysqld      615         mysql   11u      REG        8,1          0        986 /tmp/ibS9XlvZ (deleted)
ntpd       1231           ntp    3r      REG        8,1        481       1427 /etc/network/interfaces~ (deleted)

Estamos tentando evitar uma reinicialização . Alguém tem uma ideia de onde isso poderia vir ou o que mais poderíamos verificar para encontrar o espaço que faltava?

    
por latz 14.02.2013 / 10:50

2 respostas

12

O arquivo que você excluiu ainda estará aberto e o Apache gravará nele. Você precisará reiniciar o Apache para permitir que ele crie um novo arquivo. Uma reinicialização graciosa deve fazer o truque

apachctl -k graceful

ou

apache2ctl -k graceful  

ou o que quer que sua distro use.

    
por 14.02.2013 / 11:10
1

Você já tentou executar sync também? Normalmente, ele deve ser executado automaticamente pelo menos uma vez a cada poucos minutos, mas quem sabe.

Além disso, como exatamente você investigou com du ? Talvez alguns desses arquivos tenham sido rotacionados em algum outro diretório, e você não tenha notado que eles ainda não foram excluídos?

Você também pode tentar executar find / -size +10000000c para encontrar arquivos maiores que 10 MB.

    
por 20.02.2013 / 23:05