Existe uma maneira de excluir o arquivo de 100GB no Linux sem debulhar IO / carga?

6

Eu tenho um arquivo de log enorme que preciso excluir em um servidor da Web de produção. Eu estou preocupado que isso trará o sistema para um rastreamento se eu o rm no Linux. Alguma idéia brilhante?

Atualização:

Sistema de arquivos: ext3

Partição: / var (principalmente logs e dados MySQL)

O arquivo de log não está mais sendo gravado. (Nenhum dado adicional está sendo adicionado)

Servidor da Web é LAMP (lotes de IO)

    
por objectoriented 02.12.2011 / 06:49

3 respostas

12

Pode ser mais rápido zerar / truncar o arquivo do que removê-lo. Eu também mencionei isso porque esse é um arquivo de log realmente grande, então deve haver uma quantidade enorme de atividade de processo escrevendo para ele. Experimente : > /path/to/logfile.log se você não estiver em condições de interromper e iniciar os serviços de produção.

    
por 02.12.2011 / 08:36
10

ionice -c3 rm yourfile.log é sua melhor chance, então rm pertencerá à classe de E / S inativa e só usará E / S quando qualquer outro processo não precisar dela. O ext3 não é estelar quando se deleta arquivos enormes e não há muito o que fazer sobre isso. Sim, o comando rm abrandará o seu sistema. A quantidade de lentidão e a duração da exclusão é algo que se pode adivinhar, depende tanto de configurações de hardware, versão do kernel e criação de sistema de arquivos ext3.

Para servidores de log e outros servidores com arquivos grandes, eu costumo usar o XFS, pois é muito rápido com eles.

    
por 02.12.2011 / 07:09
1

A solução alternativa é ter discos separados e alternar entre eles. Então, quando você terminar de fazer o log para um disco, você troca para o outro, e então você pode usar muitos IOs para remover coisas, e não sobrecarregar o disco ativo.

    
por 28.04.2015 / 08:28

Tags