Częstotliwość procesora jest zawsze minimalna, nawet jeśli obciążenie procesora wynosi 100%

15

Nie wiem, kiedy ten problem zaczął się pojawiać, być może od czasu zainstalowania Ubuntu (16.04, świeże). Zauważyłem, że Ubuntu było niezwykle wolne, środowisko było niespokojne, a użycie procesora wysokie, nawet w stanie bezczynności, początkowo myślałem, że jakiś program go spowalnia.

Po pewnym czasie zorientowałem się, co go powoduje, częstotliwość procesora jest ustawiona na 800 MHz, non stop, bez względu na okoliczności. Maksymalna częstotliwość ma wynosić 3100 MHz z Turbo-boost i zwykle 2000 MHz. Celowo ustawiłem użycie procesora (wszystkich 4 wątków na 2 rdzeniach) na 100%, ponieważ Blender renderuje pewne rzeczy na procesorze, wciąż pozostaje na 800 MHz.

Próbowałem ustawić maksymalny profil wydajności, ale nadal pozostaje niski. Testowałem temperaturę, wydaje się, że cały czas wynosi 60 ° C, kiedy 87 ° C jest uważane za wysokie, a 105 ° C krytyczne. Cały czas pracuję na zasilaniu prądem przemiennym, akumulator nie wydaje się ładować od jakiegoś czasu.

Oto, co raportuje 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).

To samo dotyczy pozostałych 3 jednostek CPU.

Oto, co zgłasza 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

W trybie oszczędzania energii zachowuje się identycznie. Jeśli odłączę zasilanie prądem przemiennym i uruchomię na akumulatorze, częstotliwość procesora gwałtownie wzrośnie do 2800 MHz, więc wydaje się, że jest to problem tylko z zasilaniem prądu przemiennego (co jest zupełnie przeciwne do tego, co powinien zrobić).

Próbowałem ustawić zmiany profili procesora, próbowałem wyłączyć skalowanie częstotliwości ( Jak mogę wyłączyć skalowanie częstotliwości procesora i ustawić system na wydajność? ), Próbowałem ustawić scaling_min_freq w / sys / devices / system / cpu / cpu [0-3] / cpufreq do jakiejś wyższej wartości, ale żadne z nich nic nie zrobiło. Częstotliwość pozostaje minimalna.

Typ procesora to Intel (R) Core i7-3537U CPU @ 2.00GHz, komputer to Dell Inspiron 15z Touch.

Mam również problem z brakiem ładowania baterii, nawet jeśli komputer jest zasilany z zasilacza sieciowego.

Więcej diagnostyki:

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

W przypadku 0x199 liczby 8 i 9 wydają się losowo permutowane między kolejnymi wywołaniami.

Dugi
źródło
Ostatnio pojawiło się kilka podobnych raportów, często dotyczących CPU Model 58. hmmm ... Jakiej marki jest twój komputer? Spójrz na to , gdzie coś zewnętrznego w stosunku do sterownika częstotliwości procesora intel_pstate utrzymuje niską częstotliwość. Podkreślając jednocześnie swoje-tych procesora przy 100% obciążeniu, można patrzeć sudo rdmsr --bitfield 15:8 -d -a 0x198i sudo rdmsr --bitfield 15:8 -d -a 0x199dodać wyjście do Twojego pytania. Uwaga rdmsrjest dostarczana przez pakiet msr-toolsi wymaga, aby moduł msr został załadowany najpierw przez sudo modprobe msr.
Doug Smythies,
Do testu użyj gubernatora PowerSave.
Doug Smythies,
Dodałem wymagane informacje do pierwszego postu. Krótko mówiąc, mój komputer to Dell Inspiron 15z Touch, wygląda na to, że jest to błąd 118751 (ponieważ problem znika po uruchomieniu na baterii). Korzystanie z gubernatora PowerSave nic nie zmienia.
Dugi
Zauważyłem, że dokładnie tak, jak w przypadku Marcina Nowaka w dyskusji o tym błędzie, moja bateria wydaje się nie ładować wcale lub bardzo wolno (nawet jeśli komputer jest wyłączony). Jednak zasilanie prądem przemiennym nie wydaje się w żaden sposób słabe.
Dugi
Czy chcesz kontynuować za pomocą raportu o błędzie? Coś zewnętrznego w stosunku do sterownika częstotliwości procesora intel_pstate utrzymuje częstotliwości procesora na najniższym poziomie. Po uruchomieniu za pomocą sterownika częstotliwości procesora acpi_cpufreq, po co dostajesz cat /sys/devices/system/cpu/cpufreq/policy0/bios_limit?
Doug Smythies

Odpowiedzi:

12

Okazało się, że problem ten nie był związany ze sterownikiem intel_pstate, ponieważ acpi_cpufreq, drugi sterownik, zgłaszał lepsze wartości, ale nigdy ich nie ustawiał. System operacyjny prawdopodobnie nie miał nad tym kontroli.

Jest to problem występujący w przypadku niektórych laptopów Dell, gdy ładowanie jest zepsute w taki sposób, że laptop jest zasilany prądem przemiennym, ale nie jest ładowany. Naprawienie problemu sprzętowego usuwa problem. W tym przypadku był to prawie niewidoczny kawałek materiału w złączu zasilania, który zapobiegał kontaktowi elektrycznemu.

Dugi
źródło
1
Ale co zrobić, jeśli w tej chwili nie mogę wymienić sprzętu (ładowarki)?
Vedavrat
Sprawdziłbym złącze, jest szansa, że ​​coś jest z nim nie tak i można to naprawić ręcznie. Jeśli nie, prawdopodobnie będziesz musiał ponieść (nieśmiertelne) problemy ze spowolnieniem procesora. Jest to problem sprzętowy niezwiązany z systemem operacyjnym lub sterownikami.
Dugi
Mój Dell Inspiton 15R N5110 Intel i7-2860QM był z umierającym ciastem aż do momentu, kiedy przestał się ładować, pozostawiając mi 800 MHz. Otworzyłem BIOS i wyłączyłem Charger Behaviori Adapter Warnings. Zdjąłem ciasto i znów wróciło. Również w systemie Windows, ale w profilu wysokiej wydajności. I odzyskałem mój procesor i dostałem 2500 MHz. Możliwe jest więc rozwiązanie problemu bez wymiany.
dzmitry.lahoda
1
Aby wyjaśnić, bateria nie była ładowana? Tak więc, jeśli mam ten sam problem co OP, ale moja bateria wydaje się ładować dobrze (laptop działa przez wiele godzin na baterii), to mam inny problem?
Garrett,
1
@ Garrett Akumulator nie był ładowany. Jeśli ciasto się ładuje, to nie jest to problem. Problem polegał na tym, że BIOS wpadł w nieoczekiwaną sytuację, gdy laptop był zasilany prądem przemiennym, ale bateria nie była naładowana.
Dugi
3

Spowoduje to ustawienie prędkości procesora na maksymalną prędkość z dowolnego terminala:

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

Edytuj plik /etc/init.d/ondemand, aby dodać go na stałe. System ondemand służy do modyfikowania częstotliwości podczas logowania. Domyślnie jest to gubernator „na żądanie”. Innymi słowy, zaczynasz od 800 MHz i wchodzisz w górę w razie potrzeby.

Roger Lawhorn
źródło
2
To pomaga. Dziękuję Ci! Ale potem po prostu zmieniamy częstotliwość procesora z minimalnej (800 MHz) na maksymalną (3200 MHz), i jak skonfigurować regulację (zmianę) częstotliwości procesora między 0,8 a 3,2 GHz w zależności od potrzeb w zależności od obciążenia, proszę? Dziękuję Ci.
Vedavrat
2

Miałem ten sam problem - procesor cpu utknął w Ubuntu, a także w systemie Windows, po przegrzanym wyłączeniu w futerale z wciąż włączonym laptopem.

Poszedłem do BIOS-u i wyłączyłem zarządzanie mocą procesora w „zasilaniu” i ustawiłem wszystko inne na pełne otwarcie (maksymalna wydajność). Uruchomiono ponownie, przywrócono do pełnej prędkości, a następnie z powrotem do BIOS-u, ponownie włączono zarządzanie jednostką centralną i poprawiono inne ustawienia, które wcześniej zmieniłem. Zrobione!

EDYCJA: Okazuje się, że jest to problem z baterią. Jeśli bateria jest naprawdę słaba, procesor nie przyspieszy (zakładam, że oszczędzam energię). Na moim thinkpadzie muszę ładować akumulator przez kilka minut, aż dioda ładowania przestanie szybko migać PRZED ponownym włączeniem urządzenia.

Joerg Baach
źródło
Zrobiłem to samo na moim XPS 15, chociaż nigdy nie włączyłem ponownie zarządzania energią. Odkąd działa szybko i stale. (Bateria jest teraz trochę
zmieniona,
2

Czasami mój laptop całkowicie ignoruje ustawienia cpufreq. Znalazłem to działa:

Odłącz przewód zasilający i podłącz go ponownie. Naprawiony :)

Zgaduję, że powodem jest to, że maszyna się pomyliła: myśli, że jest na baterii, i myśli, że bateria jest słaba, więc podkręca procesor, aby oszczędzać energię.

Musimy tylko poinformować, że jest właściwie podłączony i działa dobrze.

(Laptop Asus x453m tutaj, Ubuntu 14.04) YouTube: Czy próbowałeś go wyłączyć i włączyć ponownie?

joeytwiddle
źródło
Wow, tak, to zadziałało dla mnie!
Tim
0

Miałem ten sam problem z moim ThinkPad T520. Po wypróbowaniu wszystkich rozwiązań znalezionych w Internecie byłem gotowy ponownie zainstalować Ubuntu. Ale potem sprawdziłem częstotliwość procesora w systemie Windows i stwierdziłem, że jest ona ograniczona do 800 MHz.

Wyglądało to na problem sprzętowy. Nie było oczywiste, że występują problemy z chłodzeniem procesora, ponieważ niższe obroty były niskie, a obudowa laptopa nie była gorąca ani nawet ciepła.

Ponieważ i tak nie było żadnych innych opcji, zdemontowałem laptopa i zmieniłem interfejs termiczny interfejsu procesora i procesora graficznego. I wiesz co? Pomogło!

Testy jednostkowe jednego z moich projektów Django wyniosły 45 minut, teraz 11 minut.

Tak więc, jeśli napotkasz podobny problem, zwłaszcza na laptopie - prawdopodobnie dlatego, że interfejs termiczny suszonego zapasu - po 3-5 latach często przestaje działać. I nie daj się zwieść czystemu grzejnikowi, cichej chłodziarce i chłodnemu korpusowi laptopa.

Igor Pomaranskiy
źródło
0

Rozwiązanie obejścia

# 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
źródło
0

Czasami nie chodzi tylko o ustawienie gubernatora skalowania. Zasady skalowania są czasami ustawione między MIN_FREQ a MIN_FREQ. Musiałem napisać skrypt, aby wszystko uporządkować za jednym razem:

#!/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
jsaddwater
źródło