CPU 사용률이 100 % 인 경우에도 CPU 주파수는 항상 최소입니다


15

이 문제가 언제 발생했는지 알 수 없으며 Ubuntu를 설치 한 이후 (16.04, 최신) 일 수 있습니다. 우분투가 비정상적으로 느리고 환경이 고르지 않고 유휴 상태 일 때도 CPU 사용량이 높다는 것을 관찰하고있었습니다. 처음에는 일부 프로그램이 속도를 늦추고 있다고 생각했습니다.

얼마 후, 나는 그것을 일으키는 원인을 알아 냈습니다 .CPU 주파수는 상황에 관계없이 논스톱으로 800 MHz로 설정되었습니다. 최대 주파수는 일반적으로 터보 부스트 및 2000MHz에서 3100MHz로 가정됩니다. 블렌더가 CPU에서 일부를 렌더링하도록하여 CPU 사용량 (2 코어의 4 개 스레드 모두)을 100 %로 설정했습니다. 여전히 800MHz로 유지됩니다.

최대 성능 프로파일을 설정하려고 시도했지만 여전히 낮습니다. 온도를 테스트했는데 87 ° C가 높고 105 ° C가 중요 할 때 항상 60 ° C 인 것 같습니다. AC 전원을 항상 사용하고 있는데 얼마 전에 배터리가 재충전되지 않는 것 같습니다.

이것이 cpufreq-info가보고하는 내용입니다.

 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).

다른 3 개의 CPU 장치도 동일합니다.

이것이 lscpu가보고 한 내용입니다.

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

절전 모드에서는 동일하게 동작합니다. AC 전원을 분리하고 배터리로 실행하면 CPU 주파수가 2800MHz로 급상승하므로 AC 전원에서만 문제가되는 것 같습니다.

CPU 프로파일 변경을 설정하려고 시도하고 주파수 스케일링을 비활성화하려고 시도했습니다 ( CPU 주파수 스케일링을 비활성화하고 시스템을 성능으로 설정하는 방법은 무엇입니까? ) ./ sys / devices / system / cpu / cpu에서 scaling_min_freq를 설정하려고했습니다. [0-3] / cpufreq를 더 높은 값으로 설정했지만 어느 것도 수행하지 않았습니다. 빈도는 최소로 유지됩니다.

CPU 유형은 Intel (R) Core (TM) i7-3537U CPU @ 2.00GHz이고 컴퓨터는 Dell Inspiron 15z Touch입니다.

컴퓨터가 AC 어댑터에서 공급 된 경우에도 배터리가 충전되지 않는 문제가 있습니다.

더 많은 진단 :

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

0x199의 경우 숫자 8과 9는 연속 호출간에 임의로 변경되는 것으로 보입니다.


최근 몇 가지 비슷한 보고서가 있었으며 종종 CPU 모델 58에 대해서도보고되었습니다. 흠 ... 컴퓨터는 어떤 브랜드입니까? 한 번 봐 가지고 intel_pstate CPU 주파수 드라이버 외부의 어떤 주파수를 낮게 잡고있다. 100 % 부하 상태에서 CPU의의를 강조하는 동안, 당신은 볼 수 있었다 sudo rdmsr --bitfield 15:8 -d -a 0x198그리고 sudo rdmsr --bitfield 15:8 -d -a 0x199당신의 질문에 출력을 추가 할 수 있습니다. 참고 rdmsr는 패키지에서 제공 msr-tools하며 msr 모듈을 통해 먼저로드해야합니다 sudo modprobe msr.
Doug Smythies

테스트를 위해 절전 관리자를 사용하십시오.
Doug Smythies

요청한 정보를 초기 게시물에 추가했습니다. 요컨대, 내 컴퓨터는 Dell Inspiron 15z Touch이며, 배터리로 실행할 때 문제가 사라지기 때문에 버그 118751의 인스턴스 인 것으로 보입니다. 절전 관리자를 사용하면 아무것도 변경되지 않습니다.
Dugi

나는 그 버그에 대한 토론에서 Marcin Nowak과 마찬가지로 배터리가 전혀 충전되지 않거나 매우 느리게 충전되는 것처럼 보입니다 (컴퓨터가 꺼져 있더라도). AC 전원은 어떤 식 으로든 약해 보이지 않습니다.
Dugi

버그 리포트를 계속 진행 하시겠습니까? intel_pstate CPU 주파수 드라이버 외부에서 CPU 주파수를 가장 낮은 pstate로 유지합니다. acpi_cpufreq CPU 주파수 드라이버를 사용하여 부팅하면 무엇을 얻을 수 cat /sys/devices/system/cpu/cpufreq/policy0/bios_limit있습니까?
Doug Smythies

답변:


12

다른 드라이버 인 acpi_cpufreq가 더 나은 값을보고했지만 설정하지 않았기 때문에이 문제는 intel_pstate 드라이버와 관련이없는 것으로 나타났습니다. OS는 아마도 이것을 제어하지 않았을 것입니다.

이것은 AC 전원이 공급되지만 충전되지 않은 방식으로 충전이 중단 된 경우 특정 Dell 랩탑에서 발생하는 문제입니다. 하드웨어 문제를 해결하면 문제가 해결됩니다. 이 경우 전원 커넥터에 거의 보이지 않는 천이있어 전기 접촉을 방지했습니다.


1
그러나 지금 당장 하드웨어 (충전기)를 교체 할 수 없다면 어떻게해야합니까?
Vedavrat

커넥터를 확인했는데 문제가있을 가능성이 있으며 수동으로 수정할 수 있습니다. 그렇지 않은 경우 느린 CPU로 인해 치명적이지 않은 문제가 발생했을 수 있습니다. OS 또는 드라이버와 관련이없는 하드웨어 문제입니다.
Dugi

내 Dell Inspiton 15R N5110 Intel i7-2860QM은 충전이 중단 될 때까지 배터리가 죽어 800MHz가되었습니다. 나는 BIOS 장애인 열 Charger BehaviorAdapter Warnings. 반죽을 and 다가 다시.습니다. 또한 Windows에서는 고성능 프로파일을 사용합니다. 그리고 내 CPU를 되찾아 2500MHz를 얻었습니다. 따라서 교체하지 않고도 문제를 극복 할 수 있습니다.
dzmitry.lahoda

1
명확히하기 위해 배터리가 충전되지 않았습니까? 따라서 OP와 동일한 문제가 있지만 배터리가 정상적으로 충전되고있는 것 같습니다 (노트북은 배터리로 몇 시간 지속되는 경우) 다른 문제가 있습니까?
개렛

1
@Garrett 배터리가 충전되지 않았습니다. 타자가 충전되면이 문제가 아닙니다. 문제는 BIOS가 랩톱에 AC 전원을 공급하는 예기치 않은 상황에 빠졌지 만 배터리가 충전되지 않았다는 것입니다.
Dugi

3

모든 터미널에서 CPU 주파수를 최고 속도로 설정합니다.

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

/etc/init.d/ondemand 파일을 편집하여 영구적으로 추가하십시오. ondemand는 로그인 중에 주파수를 수정하는 데 사용됩니다. 기본값은 '주문형'주지사입니다. 다시 말해 800mhz에서 시작하여 필요에 따라 올라갑니다.


2
도움이됩니다. 감사합니다! 그런 다음 CPU 주파수를 최소 (800Mhz)에서 최대 (3200MHz)로 변경하고로드에 따라 필요에 따라 CPU 주파수를 0.8 ~ 3.2GHz로 조정 (변동)하는 방법은 무엇입니까? 감사합니다.
Vedavrat

2

나도 같은 문제가 있었다-cpu freq는 노트북이 켜져있는 동안 휴대용 케이스에서 과열 된 후 우분투뿐만 아니라 창문에도 붙어있다.

BIOS로 가서 "전원"에서 CPU 전원 관리를 비활성화하고 다른 모든 것을 최대 스로틀 (최대 성능)로 설정했습니다. 재부팅, 최고 속도, BIOS로 돌아가서 CPU 관리를 다시 활성화하고 이전에 변경 한 다른 설정을 수정했습니다. vo!

편집 : 배터리 문제로 밝혀졌습니다. 배터리가 실제로 부족하면 CPU 속도가 빨라지지 않습니다 (전원 절약이라고 가정). Thinkpad에서 기기를 다시 켜기 전에 충전 LED가 빠르게 깜박임을 멈출 때까지 몇 분 동안 배터리를 충전해야합니다.


XPS 15에서도 동일한 작업을 수행했지만 전원 관리를 다시 활성화하지는 않았습니다. 그것이 빠르고 일정하게 실행 된 이후로. (배터리는 이제 약간 영향을 받지만 나에게는 그다지 중요하지 않습니다)
pandaadb

2

때때로 내 랩탑은 cpufreq 설정을 완전히 무시합니다. 나는 이것이 효과가 있음을 발견했다.

전원 코드를 뽑았다가 다시 꽂습니다. 고정 :)

그 이유는 기계가 혼란 스러웠 기 때문입니다. 배터리에 있다고 생각하고 배터리가 부족하다고 생각하므로 CPU를 언더 클럭하여 전력을 절약합니다.

우리는 그것이 실제로 연결되어 있고 잘하고 있음을 알려 주면됩니다.

(Asus x453m 노트북, Ubuntu 14.04) YouTube : 랩탑 을 껐다가 다시습니까?


와우, 이것은 나를 위해 일했다!
Tim

0

ThinkPad T520에서도 같은 문제가 발생했습니다. 인터넷에서 찾은 모든 솔루션을 시도한 후 우분투를 다시 설치할 준비가되었습니다. 그러나 Windows에서 CPU 주파수를 확인한 결과 800 MHz로 제한되었습니다.

하드웨어 문제로 보였습니다. 냉각기 RPM이 낮고 랩탑 케이스가 뜨겁거나 따뜻하지 않기 때문에 CPU 냉각에 문제가있는 것은 분명하지 않습니다.

어쨌든 다른 옵션은 없었으므로 랩톱을 분해하고 CPU 및 GPU 칩에서 열 인터페이스 greese를 변경했습니다. 그리고 당신은 무엇을 알고 있습니까? 도움이되었습니다!

Django 프로젝트 실행 시간 중 하나에 대한 단위 테스트는 45 분이었으며 지금은 11 분입니다.

따라서, 특히 랩톱에서 비슷한 문제에 직면하게 될 경우 (아마 건조 된 열 인터페이스가 3-5 년 후) 종종 작업을 중단합니다. 깨끗한 라디에이터, 조용한 쿨러 및 시원한 랩탑 본체에 속지 마십시오.


0

해결 방법 솔루션

# 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; 

0

때로는 스케일링 조정기를 설정하는 것이 아닙니다. 스케일링 정책은 때때로 MIN_FREQ와 MIN_FREQ 사이로 설정됩니다. 한 번에 모든 것을 바로 설정하는 스크립트를 작성해야했습니다.

#!/bin/bash
echo "Setting all CPUs to " "$@"
CPUINFO_MIN_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq)
CPUINFO_MAX_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
MIN=$(echo "scale=1; $CPUINFO_MIN_FREQ / 1000000" | bc)"G"
MAX=$(echo "scale=1; $CPUINFO_MAX_FREQ / 1000000" | bc)"G"

echo "Minimum frequency: " $MIN ", Maximum frequency: " $MAX

GOVERNOR=@0
if [ $# -eq 0 ]
    then
        echo "No arguments supplied, using ONDEMAND governor"
        GOVERNOR="ondemand"
    else
        echo "Governor " $1 " supplied"
        GOVERNOR=$1
fi

for ((i=0;i<$(nproc);i++));
    do cpufreq-set -c $i -r -g $GOVERNOR  --min $MIN --max $MAX;
done
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.