Como lidar automaticamente com pouco espaço em disco?

2

Atualmente, um de nossos protótipos tem um sistema de cache muito ruim. Em questão de minutos, ele enche o disco rígido e torna o sistema inutilizável. O que eu preciso fazer é reiniciar o serviço mysql para liberar espaço.

Minha pergunta: Existe uma maneira de reiniciar o serviço mysql quando o disco fica acima de 95% de uso?

Eu sei que isso é pouco ortodoxo. E sim, estou ciente de que isso não é realmente uma solução, mas estamos falando de um protótipo que precisa ser executado para uma apresentação e outros propósitos de testes, em vez de ser estável e adequado.

    
por Harrys Kavan 04.02.2016 / 09:55

3 respostas

1

Se você usar systemd para iniciar mysql , poderá adicionar LimitFSIZE ao arquivo de unidade.

Sem systemd , você pode usar ulimit :

bash -c 'ulimit -f 100; dd if=/dev/zero of=bigfile bs=10M count=1; echo foo'

Ambas as abordagens não se referem ao espaço livre, no entanto. Você tem que calcular com antecedência o quanto eles podem consumir.

Talvez a cota do sistema de arquivos seja mais flexível (não estou familiarizada com eles). Isso seria uma opção se você tivesse uma conta de usuário que apenas executa mysql (o que provavelmente é o caso de qualquer maneira).

    
por 04.02.2016 / 10:06
1

Como você diz, você está pedindo uma solução pouco ortodoxa, mas desde que você reconhece isso, você pode verificar o espaço livre com df

df /partition/you/need/to/monitor

Analise a saída disso e, com base no que você encontrar, reinicie seu serviço mysql. Provavelmente você precisará privs root para isso, então você pode precisar se dar permissão para reiniciar o serviço com um sudo sem senha configuração.

Você pode automatizar tudo isso com o cron.

    
por 04.02.2016 / 10:09
1

Se você usar o monit, poderá fazer isso para monitorar o sistema de arquivos e reiniciar o mysql-services quando o espaço em disco for muito baixo.

Verifique o link

    
por 04.02.2016 / 13:13