A frequência da CPU é sempre mínima, mesmo que a média da CPU seja 100%

15

Não sei quando esse problema começou a acontecer, pode ter sido desde que instalei o Ubuntu (16.04, recente). Eu estava observando que o Ubuntu era invulgarmente lento, o ambiente era instável e o uso da CPU era alto, mesmo quando ocioso, inicialmente pensei que algum programa o estivesse atrasando.

Depois de algum tempo, eu descobri o que estava causando isso, a frequência da CPU é definida em 800 MHz, sem parar, independentemente das circunstâncias. A frequência máxima deve ser de 3100 MHz com Turbo-boost e 2000 MHz normalmente. Eu defini deliberadamente o uso da CPU (de todos os 4 threads em 2 núcleos) para 100% ao fazer o Blender renderizar algumas coisas na CPU, ele ainda permanece em 800 MHz.

Eu tentei definir o perfil de desempenho máximo, mas ele ainda permanece baixo. Testei a temperatura, ela parece estar a 60 ° C o tempo todo, quando 87 ° C é considerado alto e 105 ° C crítico. Estou funcionando com energia CA o tempo todo, a bateria não parece estar sendo recarregada há algum tempo.

Isto é o que o cpufreq-info informa:

 driver: intel_pstate
 CPUs which run at the same hardware frequency: 0
 CPUs which need to have their frequency coordinated by software: 0
 maximum transition latency: 0.97 ms.
 hardware limits: 800 MHz - 3.10 GHz
 available cpufreq governors: performance, powersave
 current policy: frequency should be within 2.00 GHz and 3.10 GHz.
                 The governor "performance" may decide which speed to use
                 within this range
 current CPU frequency is 800 MHz (asserted by call to hardware).

É o mesmo para outras 3 unidades de CPU.

Isto é o que o lscpu relata:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz
Stepping:              9
CPU MHz:               799.921
CPU max MHz:           3100,0000
CPU min MHz:           800,0000
BogoMIPS:              3990.99
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              4096K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts

No modo de economia de energia, ele se comporta de forma idêntica. Se eu desconectar a energia CA e funcionar com bateria, a frequência da CPU dispara para 2800 MHz, então parece haver um problema apenas na energia CA (que é exatamente o oposto do que ela deveria fazer).

Tentei definir perfis de alteração de CPU, tentei desativar o dimensionamento de frequência ( como posso desativar o dimensionamento de frequência da CPU e definir o sistema para desempenho? ), Tentei definir scaling_min_freq em / sys / devices / system / cpu / cpu [0-3] / cpufreq para um valor mais alto, mas nenhum deles fez nada. A frequência permanece mínima.

O tipo de CPU é CPU Intel (R) Core (i) i7-3537U a 2.00GHz, o computador é o Dell Inspiron 15z Touch.

Também tenho um problema com a bateria não carregando, mesmo que o computador seja alimentado pelo adaptador CA.

Mais diagnósticos:

$ sudo rdmsr --bitfield 15:8 -d -a 0x198
8
8
8
8
$ sudo rdmsr --bitfield 15:8 -d -a 0x199
9
8
9
9

No caso de 0x199, os números 8 e 9 parecem ser permutados aleatoriamente entre chamadas consecutivas.

Dugi
fonte
Ultimamente, tem havido alguns relatórios semelhantes, e frequentemente para o modelo de CPU 58. hmmm ... Qual é a marca do seu computador? Dê uma olhada nisso , onde algo externo ao driver de frequência da CPU intel_pstate mantém a frequência baixa. Embora sublinhando seus de CPU 100% de carga, você pode olhar para sudo rdmsr --bitfield 15:8 -d -a 0x198e sudo rdmsr --bitfield 15:8 -d -a 0x199e adicionar a saída para sua pergunta. A nota rdmsré fornecida pelo pacote msr-toolse requer que o módulo msr seja carregado primeiro via sudo modprobe msr.
Doug Smythies
Por favor, use o governador de economia de energia para o teste.
Doug Smythies
Eu adicionei as informações solicitadas à postagem inicial. Em resumo, meu computador é um Dell Inspiron 15z Touch, ele parece ser uma instância do Bug 118751 (porque o problema desaparece ao funcionar com bateria). O uso do governador de economia de energia não muda nada.
Dugi
Percebi que, exatamente como Marcin Nowak na discussão sobre esse bug, minha bateria parece estar carregando de forma alguma ou extremamente lenta (mesmo que o computador esteja desligado). A energia CA não parece ser fraca de forma alguma.
Dugi
Deseja continuar através do relatório de erros? Algo externo ao driver de frequência da CPU intel_pstate está mantendo as frequências da CPU em seus estados mais baixos. Se você inicializar usando o driver de frequência da CPU acpi_cpufreq, o que você ganha cat /sys/devices/system/cpu/cpufreq/policy0/bios_limit?
Doug Smythies

Respostas:

12

Aconteceu que esse problema não estava relacionado ao driver intel_pstate, porque acpi_cpufreq, o outro driver, relatou melhores valores, mas nunca os definiu. O sistema operacional provavelmente não tinha controle sobre isso.

Esse é um problema que ocorre com determinados laptops da Dell quando o carregamento é interrompido de uma maneira que o laptop é alimentado por CA, mas não é carregado. Corrigir o problema de hardware remove o problema. Nesse caso, era um pedaço de pano quase invisível no conector de alimentação que impedia o contato elétrico.

Dugi
fonte
1
Mas o que fazer, se agora não consigo substituir o hardware (carregador)?
Vedavrat
Gostaria de verificar o conector, há uma chance de que algo está errado com ele e pode ser corrigido manualmente. Caso contrário, você provavelmente terá que sofrer os problemas (não fatais) com a CPU lenta. Este é um problema de hardware não relacionado ao SO ou aos drivers.
Dugi
Meu Dell Inspiton 15R N5110 Intel i7-2860QM estava com a bateria morrendo até o ponto em que para de carregar, deixando-me com 800 MHz. Abri o BIOS e desabilitei Charger Behaviore Adapter Warnings. Retirou a massa e recuou. Também no Windows, mas coloque em High Performance Profile. E voltei minha CPU e tenho 2500 MHz. Portanto, é possível superar o problema sem substituição.
precisa saber é o seguinte
1
Para esclarecer, sua bateria não estava sendo carregada? Portanto, se eu tiver o mesmo problema que o OP, mas minha bateria estiver carregando muito bem (o laptop dura muitas horas com bateria), então eu tenho um problema diferente?
Garrett
1
@Garrett A bateria não estava sendo carregada. Se a massa carregar, então não é esse problema. O problema era que o BIOS entrou em uma situação inesperada em que o laptop era alimentado por CA, mas a bateria não estava carregada.
Dugi
3

Isso definirá sua CPU Freq para a velocidade máxima em qualquer terminal:

sudo cpufreq-set -f `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`

Edite o arquivo /etc/init.d/ondemand para adicioná-lo permanentemente. ondemand é usado para modificar sua frequência durante o login. O padrão é o governador 'ondemand'. Em outras palavras, você começa a 800 mhz e sobe conforme necessário.

Roger Lawhorn
fonte
2
Isso ajuda. Obrigado! Mas então apenas mudamos a frequência da CPU de mínima (800 Mhz) para máxima (3200 MHz), e como configurar para ajustar (variar) a frequência da CPU entre 0,8 e 3,2 GHz conforme necessário de acordo com a carga, por favor? Obrigado.
Vedavrat
2

Eu tive o mesmo problema - a CPU freq ficou presa no ubuntu e no windows, depois de um desligamento superaquecido na maleta com o laptop ainda ligado.

Eu fui ao BIOS, desabilitei o gerenciamento de energia da CPU em "power" e coloquei todo o resto em aceleração máxima (desempenho máximo). Reinicializei, voltei à velocidade máxima e, em seguida, voltei ao BIOS, habilitei o gerenciamento da CPU novamente e corrigi as outras configurações que alterei anteriormente. Et voilà!

EDIT: Acontece que é um problema de bateria. Se a bateria estiver muito baixa, a CPU não irá acelerar (presumo que economize energia). No thinkpad, tenho que carregar a bateria por alguns minutos, até o LED de carregamento parar de piscar rapidamente ANTES de ligar a máquina novamente.

Joerg Baach
fonte
Fiz o mesmo no meu XPS 15, embora nunca reative o gerenciamento de energia. Desde que seja rápido e constante. (Bateria é agora um pouco afetado, mas isso não é muito importante para mim)
pandaadb
2

Às vezes, meu laptop ignora completamente as configurações do cpufreq. Eu encontrei isso funciona:

Desconecte o cabo de alimentação e conecte-o novamente. Fixed :)

Suponho que o motivo é que a máquina ficou confusa: ela acha que está com bateria e que a bateria está fraca, então faz um underclock da CPU para economizar energia.

Só precisamos informar que está realmente conectado e indo bem.

(Laptop Asus x453m aqui, Ubuntu 14.04) YouTube: Você tentou desligar e ligar novamente?

joeytwiddle
fonte
Uau, sim, isso funcionou para mim!
Tim
0

Eu tive o mesmo problema com o meu ThinkPad T520. Depois de tentar todas as soluções encontradas na internet, eu estava pronto para reinstalar o Ubuntu. Mas então eu verifiquei a frequência da CPU no Windows e a achei limitada a 800 MHz também.

Por isso, parecia um problema de hardware. Não era óbvio que havia problemas com o resfriamento da CPU, porque as RPMs mais frias eram baixas e a caixa do laptop não era quente nem quente.

Como não havia outras opções, desmontei o laptop e mudei o interface cinza em chips de CPU e GPU. E sabe de uma coisa? Ajudou!

Os testes de unidade em um dos meus projetos do Django foram de 45 minutos, agora são 11 minutos.

Portanto, se você enfrentar um problema semelhante, especialmente no laptop - provavelmente porque a interface térmica está seca - depois de 3 a 5 anos, muitas vezes deixa de fazer seu trabalho. E não se deixe enganar pelo radiador limpo, pelo refrigerador silencioso e pelo corpo do laptop.

Igor Pomaranskiy
fonte
0

Solução alternativa

# Determinate CPU capabilities
MAX_CPU=$(cpupower frequency-info -l | tail -n1 | cut -d' ' -f2)

# Disable "BD PROCHOT" 
wrmsr -a 0x1FC 262238;

# Set and apply frequencies
cpupower frequency-set \
  -d $(expr $MAX_CPU / 2) \
  -u $MAX_CPU \
  -r \
  -g performance; 
eSlider
fonte