limit cpu ocupation for script

3

Como posso limitar o uso de uma CPU ao meu script de backup? Ele faz um db mysql dump e backup do meu diretório www, em seguida, bzip2 tudo, mas demora um pouco e durante esse tempo um cpu tem 100% de carga. Posso de alguma forma limitar uma CPU para, por exemplo, 25 @ no máximo, levará mais tempo para fazer um backup, mas não interromperá outros processos em segundo plano.

    
por michael 08.07.2010 / 23:50

4 respostas

3

Você não quer limitar o uso de CPU por percentual - afinal, se a CPU não tem mais nada a fazer, pode também dedicar 100% ao seu script.

Você deseja garantir que outros programas tenham prioridade sobre o script de backup. Para fazer isso, basta invocar o script usando nice :

nice mybackupscript

Isso executará o script com prioridade baixa, dessa forma, ele só obterá a CPU se outros processos estiverem ociosos.

    
por 08.07.2010 / 23:54
1
O

cpulimit faz exatamente o que você precisa.

    
por 09.07.2010 / 00:11
1

Geralmente, com scripts de backup, o afunilamento não é CPU, mas E / S de disco. Se este for o caso, o bom fará pouca diferença na carga do seu sistema. O iostat, que está incluído no SYSSTAT , pode ajudá-lo a investigar melhor. Além disso, este post detalha outros utilitários de E / S.

ionice pode ajudar alguns. No entanto, o ionice funcionará apenas com o programador CFQ . CFQ tornou-se o padrão com > Linux 2.6.18. O RHEL4 fornece o kernel 2.6.9, no entanto, ele ainda é padrão no RHEL4 e mais recente.

    
por 09.07.2010 / 01:11
-1

Execute o script com a menor prioridade:

nice -39 /scripts/script_name.sh
    
por 09.07.2010 / 00:09