Limitando o uso da CPU uniformemente

0

Eu tenho um programa e quero medir seu tempo de execução com base na entrada, mas meu sistema é antigo e tem problemas de superaquecimento. Deixar um programa em execução no uso total da CPU por cerca de 1 minuto normalmente faz com que ele entre em hibernação / desligue do superaquecimento.

Estou procurando algo para limitar o uso da CPU. Eu olhei para cpulimit mas funciona pausando e continuando o programa várias vezes. Como isso funcionaria nesse caso? Seria uma estimativa de executar o programa em uma CPU mais lenta, ou isso corromperia os resultados de tempo?

Existe algum outro software que limita o uso da CPU de maneira mais uniforme?

    
por devil0150 23.01.2017 / 11:10

1 resposta

1

Parece que você quer limitar a velocidade ou frequência de sua CPU. O kernel do Linux deve ser capaz de fazer isso, se o seu cpu suportar, você pode fazer com que ele só acelere para um máximo mais baixo. Por exemplo, se a sua CPU normalmente funciona a 1, 2 ou 3 GHz, você diz para ir apenas para 1 ou 2 GHz e deve ficar muito mais frio do que quando está em 3 GHz.

Você pode usar a interface sysfs / procfs diretamente, mas usar cpufreq é provavelmente muito mais fácil. No Debian / Ubuntu o pacote é chamado cpufrequtils, aqui está um Pesquisa do pacote do Ubuntu para .

A execução de cpufreq-info deve informar a & frequências & governadores, e se o cpu "correr na mesma freqüência de hardware" ou "precisa ter sua frequência coordenada por software".

Por exemplo, para definir a frequência máxima de cpu0 para 1,5 GHz, você executaria:
cpufreq-set --cpu 0 --max 1.5GHz

Os diferentes governadores e configurações decidem quando acelerar & desacelerar o cpu, definindo-os "errado" poderia ter o cpu parece que nunca quer acelerar, ou nunca quer abrandar, mas em geral eu acho que o governador conservador é melhor do que o governador ondemand (geralmente é o padrão e parece acelerar se você olhar para o seu computador engraçado ultimamente ;-) Por exemplo, este comando diz ao administrador conservador para diminuir a velocidade se os 50% da CPU estiverem ocupados:
echo 50 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/down_threshold

E, claro, suspeito que algo está fisicamente errado com o seu computador. Não deveria ser desligado assim.

  • O fiapo está bloqueando o ventilador & fluxo de ar? Respiradouros de ar bloqueados?
  • O ventilador está funcionando a toda velocidade ou rodando?
  • O dissipador de calor está bem preso ou danificado?

É realmente desligar o superaquecimento da CPU (logs suportam), ou a fonte de alimentação está desistindo / superaquecendo?

    
por 23.01.2017 / 11:34