Limitador de CPU para Linux

O que é cpulimit?
cpulimit é um programa simples que tenta limitar o uso da CPU de um processo (expresso em porcentagem, não no tempo de CPU). Isso é útil para controlar os trabalhos de grupo, quando você não quer que eles comem CPU demais. Ele não age sobre o valor nice stuff ou outra prioridade de agendamento, mas com o uso da CPU real. Além disso, é capaz de se adaptar a carga total do sistema, de forma dinâmica e rápida.

Como funciona

Note que você não precisa ler este parágrafo, a fim de utilizar cpulimit, você pode pular se você não está interessado em ajustes cpulimit.
Então, você está curioso para saber os segredos da cpulimit:) Claro que não há segredo, se você for um programador C, mas vou tentar explicar a todos. O trabalho de cpulimit é feito tudo em espaço de usuário, de modo a não interferir com o programador de Linux. Basicamente, o processo de destino, que você pode especificar por nome PID, ou linha de comando, é continuamente interrompida e reiniciada, enviando-lhe SIGSTOP e sinais SIGCONT. Os sinais são enviados por cpulimit nos momentos adequados, com base no limite especificado pelo usuário e as estatísticas do processo de leitura a partir de / proc.

Requisitos de Sistema
cpulimit deve ser executado em todos os Linux 2.2 ou superior. Foi relatado por vários utilizadores que funciona bem cpulimit mesmo em hardware SMP, mas consideram que, se você tiver mais de uma CPU existe uma pequena diferença no sentido da utilização da CPU (veja abaixo).
Se você pode modificar o código fonte do cpulimit para fazê-lo funcionar em outro sistema operacional, por favor avise-me, para que eu possa publicar o seu código. Penso que não apenas o código-portátil é para percorrer a lista de processos e obter dados estatísticos.
Instruções
Baixe a última versão estável a partir de aqui, ou obter o código fonte mais recente do repositório Subversion com este comando:

svn checkout https://cpulimit.svn.sourceforge.net/svnroot/cpulimit/trunk cpulimit

Em seguida, extraia a fonte e compilar com o make:

tar-zxf cpulimit-xxx.tar.gz

cd cpulimit-xxx

make

Nome do arquivo executável é cpulimit. Você pode querer copiá-lo em / usr / bin.
Exemplos de uso
Limite bigloop o processo ‘pelo nome do executável a 40% CPU:

cpulimit – – exe bigloop – – limit 40
cpulimit – – exe /usr/local/bin/bigloop – – limit 40

Limite de um processo pelo PID para 55% CPU:

cpulimit – – pid 2960 – – limit 55

Lançar um processo por linha de comando e limitá-la a 40% (em versão de desenvolvimento só!):

cpulimit – – limit 40 /etc/rc.d/rc.boinc start

Notas

Se a sua máquina tem um processador pode limitar o percentual de 0% a 100%, o que significa que se você definir, por exemplo, 50%, o processo não pode usar mais de 500 ms de tempo de CPU para cada segundo. Mas se a sua máquina tem quatro processadores, o percentual pode variar de 0% a 400%, para fixar o limite de 200% significa que para não usar mais da metade da potência disponível. Em qualquer caso, o percentual é o mesmo do que você vê quando você executar superior.

cpulimit deve funcionar pelo menos com o mesmo usuário que executa o processo controlado. Mas é muito melhor se você executar cpulimit como root, a fim de ter uma prioridade maior e um controle mais preciso.
Agora cpulimit faz limite também os filhos do processo especificado. O código ainda é experimental, então deixe-me saber como é.

cpulimit está escrito apenas para se divertir por Angelo Marletta.
Por favor, envie o seu feedback, relatórios de bugs, pedidos de recurso ou apenas thanks:) para marlonx80 arroba hotmail ponto com

Fonte: Link

Anúncios

~ por 3c0linux em outubro 14, 2009.

 
%d blogueiros gostam disto: