AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 491944
Accepted
zjeffer
zjeffer
Asked: 2019-01-02 17:03:41 +0800 CST2019-01-02 17:03:41 +0800 CST 2019-01-02 17:03:41 +0800 CST

Temperaturas da CPU no Linux: afogamento ou leitura errada?

  • 772

Usando um Lenovo Legion Y520 com i7-7700HQ (relógio base 2.8Ghz) e GTX 1050.

Estou recebendo avisos de superaquecimento da CPU no linux e isso está afetando meu desempenho nos jogos (encontrado no Payday 2 e CS:GO). Nunca tive problemas no Windows.

Isto é o que eu encontrei ao tentar solucionar esse problema:

No Windows 10 (usando aida64)

  • O Windows fica em torno de 3,4 Ghz no modo inativo (porque minhas configurações de energia estão definidas para 'alto desempenho' em vez do padrão 'balanceado'), com uma temperatura em torno de 50C.

  • Ao estressar a CPU, a temperatura vai lentamente (em alguns segundos em vez de instantaneamente) de cerca de 50C para cerca de 75C e permanece lá confortavelmente. As velocidades do clock são de cerca de 2,9 GHz ao estressar. A utilização é sempre 100%. Aida64 não relata estrangulamento. A tensão no núcleo da CPU vai de cerca de 1,1 a 0,9 quando sob estresse.

No Arch Linux (usando s-tui)

  • O Linux fica em torno de 2.0Ghz em modo inativo, com uma temperatura em torno de 50C.

  • Aqui é onde fica estranho: ao estressar a CPU, a temperatura IMEDIATAMENTE passa de 50C para cerca de 93C. As velocidades do clock são exatamente 3.4Ghz ao estressar. A utilização é sempre 100%. Ao desligar o teste de estresse, a temperatura volta IMEDIATAMENTE para cerca de 50C, como se nada tivesse acontecido. O laptop certamente não parece aquecer até 90C + ao fazer isso, mesmo após um longo estresse.

Aqui está uma imagem que mostra como a temperatura, a potência e a frequência diminuem exatamente ao mesmo tempo. Observe o quanto a temperatura da CPU muda em tão pouco tempo. Imagem de estrangulamento no linux

Como faço para corrigir esse problema de limitação? Faço undervolt do meu processador no linux? Como é que ele lê temperaturas erradas no Linux, mas não no Windows?

Mudei o perfil usando cpupower de powersave para performance. Ainda vejo o mesmo estrangulamento em s-tui. Há um salto na frequência de CPU ociosa ao configurar para desempenho (em vez de cerca de 2000-2500Mhz para sempre em 3400Mhz), mas essa é a única coisa que mudou.

Controle do ventilador

Tentei controlar as ventoinhas usando fancontrol (lm_sensors) , mas o pwmconfig diz que não há módulos de sensores compatíveis com pwm instalados.

Eu tentei com NBFC , mas parece que não está fazendo nada, não importa o perfil que eu escolha. Eu nem sei se a NBFC consegue controlar meus fãs, mas ela não reporta nenhum erro na hora de escolher um perfil.

Eu também tentei thinkfan , mas não parece ajudar com a limitação. Também acha que a velocidade do meu ventilador está em 8 RPM, veja este tópico

Solução

Descobri que reduzir a frequência máxima de CPU permitida usando cpupower para algo como 3100MHz em vez do padrão 3800 corrige todos os problemas.

sudo cpupower frequency-set -u 3100MHz

Eu também mudei max_freq /etc/default/cpupowerpara o mesmo valor, para torná-lo permanente. Descobri que isso resulta em uma leve queda de fps nos jogos, mas nada sério. Pelo menos meu fps está estável :)

Infelizmente, acho que isso pode resultar em diminuição do desempenho em tarefas que não são de jogos, como ao compilar algo.

Após 1,5 anos

Acabei de testar a estabilidade do Windows novamente (com AIDA64) e descobri que agora também os aceleradores térmicos. Como você pode ver na imagem abaixo, as temperaturas saltam rapidamente para os altos 90 e o AIDA64 relata o afogamento. A velocidade do clock fica ociosa em 3,4 GHz e alguns segundos após o início do teste cai para cerca de 800 MHz, antes de saltar para 3,4 GHz novamente um segundo depois. Ele não decide diminuir a velocidade do clock durante o teste de estresse para algo como 2,9 GHZ (como antes).

AIDA64 no Windows, configuração de energia = alto desempenho

Como é que de repente parou de diminuir a frequência máxima no Windows?

cpu intel
  • 2 2 respostas
  • 17336 Views

2 respostas

  • Voted
  1. Best Answer
    Jeff A
    2019-01-02T18:04:47+08:002019-01-02T18:04:47+08:00

    A diferença é devido ao Windows e linux usando diferentes perfis de limitação de CPU.

    Você tem algum controle sobre isso no linux. Por exemplo, o comando a seguir mostrará qual perfil está sendo usado no momento:

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

    Existem maneiras de escolher quais perfis usar. O wiki do Arch Linux tem boas informações sobre isso, pode valer a pena ler:

    Escala de Frequência da CPU - Arch Wiki

    Há um problema adicional de controle do ventilador - você precisa ter certeza de ter os drivers adequados para controlar seus ventiladores e que eles estão configurados para uma velocidade alta o suficiente durante os jogos.

    Linux em Laptops pode ser um recurso útil.

    • 8
  2. Lamp
    2020-07-20T13:50:39+08:002020-07-20T13:50:39+08:00

    Acredito que o motivo da diferença seja porque sua instalação do Windows possui o driver Intel Dynamic Platform e Thermal Framework que ajusta as frequências para gerenciar a temperatura. Sua instalação do Linux não tem isso, então sua CPU funcionará apenas na frequência máxima, independentemente da temperatura, então ele saltará para o máximo de 100C até que o firmware da CPU minimize todas as frequências até que a temperatura caia, então ele retornará à frequência máxima e isso repete.

    Infelizmente, o driver Intel DPTF não está disponível para linux AFAIK, portanto, a menos que você possa configurar algum software para fazer o equivalente a ele (térmico talvez?), acho que você pode simplesmente limitar a frequência máxima.

    Eu não entendo como a temperatura muda tão instantaneamente (ela muda entre 60C e 100C em uma fração de segundo no Y520 do meu amigo que está sem o driver Intel DPTF; Eu nunca vi nenhuma mudança de temperatura da CPU tão rapidamente). Eu pensei que era causado por mau contato térmico entre a CPU e o dissipador de calor, mas talvez o chip seja projetado assim e deveria ser gerenciado pelo driver Intel DPTF para funcionar corretamente.

    • 3

relate perguntas

  • Definir limites na utilização do núcleo da CPU no Linux

  • Como uma CPU sabe que há IO pendente?

  • Existe uma maneira de descobrir se meu sistema suporta Intel AMT?

  • Tempo de execução total da máquina

  • Por que contagem de CPU diferente de nproc e nproc --all no contêiner OpenVZ?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve