Escala de frequência da CPU Ubuntu 13.04 'preso' na frequência mais baixa


10

Acabei de instalar o Ubuntu 13.04 no meu MacBook Air, depois de brincar por um tempo em que a máquina parecia muito lenta, então verifiquei a frequência da CPU. cpufreq-info, ele reporta 800 MHz em todos os 4 núcleos (que é a configuração mais baixa). O governador está definido como ondemand. Agora, quando eu carrego um pouco de carga no sistema (executando um pequeno script que mistura as coisas quatro vezes), a máquina fica retida, mas o cpufreq-info ainda está reportando 800MHz. Posso definir manualmente a frequência para 2 GHz, o que resolve o problema de desempenho, mas me custará minha bateria.

Esta é a saída do cpufreq-info:

cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:5,75%, 2.00 GHz:0,47%, 1.90 GHz:0,00%, 1.80 GHz:0,01%, 1.70 GHz:0,01%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,02%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:93,67%  (1388)
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:3,17%, 2.00 GHz:0,01%, 1.90 GHz:0,01%, 1.80 GHz:0,00%, 1.70 GHz:0,00%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,01%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:96,71%  (1433)
analyzing CPU 2:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:2,69%, 2.00 GHz:0,00%, 1.90 GHz:0,01%, 1.80 GHz:0,01%, 1.70 GHz:0,01%, 1.60 GHz:0,02%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,02%, 1.20 GHz:0,02%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:97,16%  (1194)
analyzing CPU 3:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 3
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:3,07%, 2.00 GHz:0,02%, 1.90 GHz:0,01%, 1.80 GHz:0,00%, 1.70 GHz:0,01%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,01%, 1.10 GHz:0,03%, 1000 MHz:0,03%, 900 MHz:0,01%, 800 MHz:96,77%  (1004)

Respostas:


4

Eu tive o mesmo problema na versão mais recente do Mint, definir a escala como conservador parecia ser o mais próximo de como o ondemand costumava funcionar.

Então eu descobri qual era o problema, o up_threshold era muito alto, estava definido para 95% de carga, agora isso é bom para cargas contínuas, mas na maioria dos casos há uma pequena explosão de atividade da CPU e você deseja a CPU escalar para 100% de velocidade muito mais rápido. Resolvi isso configurando o limite_ acima (75 parece funcionar bem no meu caso). Você o altera fazendo eco do valor desejado para /sys/devices/system/cpu/cpufreq/ondemand/up_threshold.


2

Sugiro que você use. Existe um aplicativo de economia de energia semelhante ao Júpiter?

E use o indicador-cpufreq, para que você saiba em que frequência está. verifique o link que colei como instalar / configurar o indicador-cpufreq

Existe um aplicativo de economia de energia semelhante ao Jupiter? Seção 3.) Processador e escala de frequência

ondemand        Dynamically switch between CPU(s) available if at 95% cpu load

Mantenha a CPU em baixa, exceda apenas se estiver com carga de 95% da CPU

performance     Run the cpu at max frequency

conservative    Dynamically switch between CPU(s) available if at 75% load

Mantenha a CPU em baixa, exceda apenas se estiver com carga de 75% da CPU

powersave       Run the cpu at the minimum frequency

0

Eu tive esse problema em 14.04 - 16.04 (a partir de hoje). Para resolvê-lo, tive que forçar o Ubuntu a ignorar a limitação da BIOS. O seguinte funcionou para mim:

Grub aberto:

sudo vim /etc/default/grub

Substitua a linha GRUB_CMDLINE_LINUX_DEFAULT:

- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
+ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable processor.ignore_ppc=1"

Atualizar grub:

sudo update-grub

Reinicie então:

echo 1 | sudo dd of=/sys/module/processor/parameters/ignore_ppc
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq 
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq 
echo 2900000 | sudo dd of=/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq 

Trabalhou para mim. Verifique o número de núcleos da CPU e atualize tudo de acordo. Você pode colocar essas linhas extras em /etc/rc.local para que sejam executadas em cada inicialização.

Edição Ninja: Substitua 2900000 acima pelo valor em:

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

A escala de frequência estava funcionando bem depois disso, temperatura e desempenho iguais ou melhores? E você lê e /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freqdepois escreve o mesmo valor? Por quê? Escrever 1 para ignore_ppcalterar os valores? (PS poderia usar teeou apenas >em vez de dd)
Xen2050
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.