Como definir a carga da CPU em uma caixa de Red Hat Linux?
-
02-07-2019 - |
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.
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.
É realmente depende do que você está tentando teste. Se você está apenas testando a carga da CPU, scripts simples para comer ciclos de CPU vazios irá funcionar bem. Eu, pessoalmente, tive que testar o desempenho de um array RAID recentemente e contou com Bonnie ++ e IOZone. IOZone vai colocar uma carga decente na caixa, especialmente se você definir o tamanho do arquivo maior do que a RAM.
Você pode também estar interessado em presente artigo .
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?