Controle a carga da CPU do Linux para testes

3

Eu gostaria de realizar alguns testes em uma variedade de dispositivos Linux para ver seu consumo de energia com base na carga atual do processador.

Como tal, eu estou procurando um programa que eu possa usar para forçar a CPU a usar X% Ou seja, posso incrementar a carga do processador em 10% e fazer medições nesse ponto.

Eu observei pacotes como 'stress' e 'cpuburn', mas eles parecem usar apenas 100%

Espero que você possa ajudar

Obrigado

    
por Zac Powell 01.11.2013 / 13:20

4 respostas

4

Você pode usar o gerador de carga da CPU junto com um limitador de carga da CPU.

Abaixo está um exemplo com os utilitários stress e cpulimit . Ambos os utilitários estão no repositório Debian e de distribuição derivada (como o Ubuntu).

stress -c 1 & cpulimit -p $( pidof -o $! stress ) -l 20

Explicação

20 é a porcentagem de tempo de CPU a ser usada. stress gera um child worker, portanto você não pode controlar o worker diretamente de cpulimit . pidof está sendo usado para encontrar o PID filho. Este exemplo simples funcionará de forma confiável somente se a instância única de stress for iniciada. Para parar a carga, pressione Ctrl + c e digite killall stress .

Como alternativa, para facilitar o procedimento, você pode usar um utilitário diferente de sobrecarga de CPU que não gera processos filhos.

cpulimit funciona melhor se você ajustar RLIMIT_NICE limite ou se você executá-lo como root .

    
por 01.11.2013 / 14:28
0

Em vez de tentar limitar o uso de aplicativos da cpu, por que você não tenta estrangular a CPU , reduzindo sua capacidade para a porcentagem que você deseja? você não será capaz de dizer a um thread que seria executado na capacidade máxima para "executar mais lentamente", a menos que ele tenha sido projetado para suportar x% do tempo, o que poluiria os dados que você está tentando coletar com a atividade do processador para operações de encadeamento como espera de giro / pulso.

dependendo da sua distro, você pode usar ferramentas como cpupower, granola ou cpufreq

    
por 01.11.2013 / 13:28
0

Existe stress-ng que permite definir as porcentagens de carga de trabalho de maneira fácil. Você poderia, por exemplo, usá-lo assim:

stress-ng --cpu 4 --cpu-load 50

Isso irá enfatizar quatro CPUs com uma carga de trabalho de 50%. Se você estiver usando o Ubuntu, você pode simplesmente instalá-lo a partir do repositório:

sudo apt-get install -y stress-ng
    
por 06.12.2016 / 15:29
0

Alguém postou um violino interessante que pode enfatizar 100% de todos os núcleos da CPU.

Ele usa um trabalhador da Web por núcleo (quadcore padrão) e pode ser facilmente modificado para estresse variável em cada núcleo.

link

  • você pode usar navigator.hardwareConcurrency para obter o número de núcleos.
  • você não pode implementar a CPU-Z como uma página da Web, embora o WebGL permita informações detalhadas da GPU.
por 06.09.2017 / 22:47