Programa para testar a carga da CPU e a prioridade do processo

3

Estou executando algum teste em instâncias do Amazon EC2 e queremos manter a CPU sempre ocupada acima de 80%.

O que eu tenho é um programa main que precisa ser executado em alta prioridade e quero lançar outro programa, preferencialmente algum código matemático em C ou um script bash que carregue a CPU para mais de 80%.

Quais programas estão lá para usar em tal tarefa e como executar meu programa com a mais alta prioridade.

PS: Rodando o Fedora.

    
por 0xFF 26.07.2011 / 00:04

2 respostas

2

Ocupar uma CPU a 100% (menos a sobrecarga) é fácil no shell:

while true; do :; done

Se você quiser reduzir a carga, introduza suspenses.

i=0; while [ $i -ne 0 ] || sleep 0.001; do i=$(( (i+1) % 10000 )); done

Ajuste 10000 para cima ou para baixo para obter a carga desejada.

A prioridade de agendamento é definida por nice . Você precisará ser root para definir uma prioridade maior que a padrão. Observe que uma gentileza negativa significa alta prioridade (uma gentileza positiva significa ser agradável, ou seja, baixa prioridade).

nice -20 sh -c 'while …'
    
por 26.07.2011 / 00:33
2

Com "legal" você pode controlar a prioridade. Para a maior prioridade (disponível apenas para root):

nice -n -20 yourprogram

E para o menor:

nice -n 19 yourprogram

Se você precisar controlar também o IO, use o ionice. "man nice" e "man ionice" para a documentação.

    
por 26.07.2011 / 00:27