Pergunta

Eu tenho uma caixa RHEL que eu preciso para colocar sob uma quantidade moderada e variável de carga da CPU (50% -75%).

O que é a melhor maneira de fazer isso? Existe um programa que pode fazer isso que eu não estou ciente de? Fico feliz em escrever algum código C para fazer isso acontecer, eu só não sei o que as chamadas do sistema vai ajudar.

Foi útil?

Solução

Este é exatamente o que você precisa: http://weather.ou.edu/~apw/projects/stress/

A partir da página inicial: "Stress é um gerador de carga de trabalho simples para sistemas POSIX. Ele impõe uma quantidade configurável de CPU, memória, I / O, e stress em disco no sistema. Ele é escrito em C, e é software livre licenciado sob a GPL."

Outras dicas

Encontre um programa de pesquisa de número primo simples que tem o código-fonte. Modificar o código fonte para adicionar uma chamada nanosleep para o loop principal com qualquer atraso dá-lhe a carga da CPU desejada.

Uma maneira comum de obter alguma carga em um sistema é compilar um pacote de software grande e outra vez. Algo como o kernel Linux.

Obter uma cópia do código-fonte, extrair o tar.bz2, vá para o diretório de origem nível superior, copiar sua configuração do kernel / boot para .config ou zcat /proc/config.gz> .config, o make fazer oldconfig, em seguida, enquanto verdadeiro; fazem limpa && make bzImage; done

Se você tem um sistema SMP, em seguida, fazer -j bzImage é divertido, isso vai gerar tarefas make em paralelo.

Um problema com isto está se ajustando a carga da CPU. Será uma carga máxima CPU exceto quando espera no disco I / O.

Você poderia fazer isso usando um script Bash. Use "ps -o pcpu | grep -v CPU" para obter o uso da CPU de todos os processos. Adicione todos esses valores em conjunto para obter o uso atual. Então, loop while ocupado que, basicamente, continua a verificar esses valores, descobrir o uso da CPU atual, e esperando uma quantidade calculada de tempo para manter o processador em um determinado limiar. Mais detalhe é necessidade, mas espero que isto vai dar-lhe um bom ponto de partida.

Dê uma olhada roteiro deste href="http://bashcurescancer.com/media/scripts/monitorCpuUsage.sh.txt" rel="nofollow noreferrer"> monitor eu encontrei e tentar obter algumas outras ideias sobre como você pode fazer isso.

Use o comando "nice".

a) Maior prioridade: $ Agradável -n -20 my_command

ou

b) Menor prioridade: $ Agradável -n 20 my_command

Um script simples para carregar e martelar o CPU usando awk. O script faz cálculos matemáticos e, portanto, picos de carga da CPU para cima em valores mais elevados passwd para loadserver.sh.

Checkout o script @ http://unixfoo.blogspot.com/2008/11/linux-cpu -hammer-script.html

Você provavelmente pode usar alguma ferramenta de geração de carga para alcançar este objetivo, ou executar um script para tomar todos os ciclos de CPU e, em seguida, usar agradável e renice sobre o processo de variar a percentagem de ciclos que o processo fica.

Aqui está um script de exemplo que vai ocupar todos os ciclos de CPU livre:

#!/bin/bash
while true ; do
true
done

lookbusy permite valor conjunto de carga da CPU. Projeto

lookbusy -c util[-high_util], --cpu-util util[-high_util]

i.e. 60% load
lookbusy -c 60

Não sei o que seu objetivo é aqui. Acredito glxgears vai usar 100% da CPU.

Assim, encontrar qualquer processo que você sabe que vai máximo para fora da CPU a 100%.

Se você tem quatro núcleos de CPU (0 1 2 3), você pode usar "taskset" para vincular este processo dizer CPUs 0 e 1. Isso deve carregar sua caixa de 50%. Para carregar que 75% ligam o processo para 0 1 2 CPUs.

Disclaimer: não testei isso. Por favor, deixe-nos saber seus resultados. Mesmo se isso funciona, eu não tenho certeza que você vai conseguir sair dessa?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top