Consumo de espaço inesperado

4

Eu tenho um problema. Eu fico sem espaço em disco o tempo todo. Eu não sei exatamente quais arquivos consomem todo o espaço. Parece que há muitos arquivos pequenos, por isso é difícil encontrar o comando du . Toda vez que eu encontrar algo para se livrar de ganhar algum espaço livre (e-mails, logs, arquivos antigos e rpms), o disco está cheio novamente depois de algum tempo. O espaço é roubado da partição do sistema (/). Resultados do comando df :

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              4061540   3848404      3492 100% /
/dev/sda3              4061572   2441348   1410576  64% /home
tmpfs                   517636         0    517636   0% /dev/shm
/dev/sdb1             10317828   1894904   7898808  20% /var/lib/mysql

O que você recomendaria nessa situação?

Seria ótimo se você também pudesse enumerar uma lista de casos quando encontrar consumo de espaço excessivo ou inesperado. Pode ajudar a resolver o problema

OS: CentOS 5.

    
por altern 18.11.2009 / 14:07

5 respostas

14

Aqui está meu regime padrão de "encontrar o que está comendo o espaço":

  1. du -hx --max-depth=1 / - procure o que está comendo o espaço. Examine o subdiretório maior (digamos du -hx --max-depth=1 /var ) até encontrar alguns porcos espaciais. Os logs (em /var/log ) são os culpados comuns (com os quais você deve lidar usando o logrotate), assim como o lixo que o yum gosta de manter (RPMs reempacotados). Se você puder identificar qualquer ofensor reincidente, elabore uma maneira de automatizar qualquer trabalho de manutenção que estiver fazendo para limpar repetidamente.
  2. lsof -n |grep deleted - procura arquivos grandes que foram excluídos. Identifique qual processo está mantendo-os abertos e mate-o ou diga-lhe para reciclar suas alças (se forem arquivos de log, kill -HUP <pid> geralmente fará o truque), se puder.
  3. Minha terceira linha de ataque é redimensionar partições ou alocar novas partições para várias montagens, embora no seu caso, como você não está usando o LVM, isso é complicado. Considere fazer uma manutenção para transformar /dev/sdb1 em um VG e alocar a partir daí.
  4. Atualizar. O espaço em disco é tão barato, que se você gastar uma hora do seu tempo procurando o que está causando o consumo de espaço, você "gastou" o tempo necessário para comprar um novo disco rígido, então compre novos drives em vez de gastar muito tempo procurando problemas.
por 18.11.2009 / 14:29
2

Uma adição à resposta do womble - se você perceber que está obtendo muitos arquivos de log grandes, considere usar logrotate (que é instalado por padrão na maioria das distros) para mantê-los abaixo do tamanho. Se houver um log de partícula ocupando a maior parte do espaço, você também deve verificar se há erros repetidos e certificar-se de que o serviço que produz o log não está definido para um nível de verbosidade muito alto.

    
por 18.11.2009 / 17:26
0

Se ainda não estiver, mova o ponto de montagem / var para outra partição. Sistema de arquivos / var existe para evitar que o FS raiz seja preenchido.

Mesmo para / tmp, se ainda não for uma partição separada.

Você pode ter um processo que exclua arquivos, mas os mantenha abertos. O espaço não será recuperado até a saída de fechamento / processo. Você pode usar o comando lsof para descobrir quais processos estão mantendo quais arquivos estão abertos. O comando lsof pode não estar em sua instalação padrão do Centos, você pode ter que adicionar o pacote para obtê-lo.

    
por 18.11.2009 / 14:14
0
sudo du --all --one-file-system / | xdu -n
    
por 18.11.2009 / 17:57
0

Exemplo: desmonte / home, escreva arquivo de 10GB, monte / home de volta. O espaço será consumido e df não mostra nada: o ponto de montagem oculta os arquivos dentro dessa pasta.

Verifique: isso pode acontecer se erros de montagem já ocorreram e alguns arquivos foram colocados lá.

    
por 21.11.2009 / 00:43