Skalowanie częstotliwości procesora Ubuntu 13.04 „utknęło” na najniższej częstotliwości


10

Właśnie zainstalowałem Ubuntu 13.04 na moim MacBooku Air, po tym jak bawiłem się przez chwilę, gdy maszyna wydawała się naprawdę wolna, więc sprawdziłem częstotliwość procesora. cpufreq-info, zgłasza 800 MHz na wszystkich 4 rdzeniach (co jest najniższym ustawieniem). Gubernator jest ustawiony na żądanie. Teraz, gdy włożyłem trochę obciążenia w system (uruchamiając mały skrypt, który czterokrotnie haszuje rzeczy), maszyna zgrzyta, ale cpufreq-info wciąż zgłasza 800 MHz. Mogę ręcznie ustawić częstotliwość na 2 GHz, co rozwiązuje problem z wydajnością, ale kosztuje mnie akumulator.

To jest wynik 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)

Odpowiedzi:


4

Miałem ten sam problem z najnowszą wersją Mint, ustawienie skalowania na konserwatywne wydawało się być najbliższe temu, jak działał ondemand.

Potem dowiedziałem się, na czym polega problem, próg podniesienia był o wiele za wysoki, ustawiony na 95% obciążenia, teraz jest w porządku dla ciągłych obciążeń, ale w większości przypadków występuje niewielki wzrost aktywności procesora, a ty potrzebujesz procesora skalować do prędkości 100% znacznie szybciej. Rozwiązałem ten problem, ustawiając th up_threshold na niższym poziomie (75 wydaje się w moim przypadku OK). Zmieniasz go, odbijając pożądaną wartość na /sys/devices/system/cpu/cpufreq/ondemand/up_threshold.


2

Sugerowałbym, aby użyć Czy jest aplikacja oszczędzająca energię podobna do Jowisza?

I użyj wskaźnika-cpufreq, abyś wiedział, na jakiej częstotliwości jesteś. sprawdź link, który wkleiłem, jak zainstalować / skonfigurować wskaźnik-cpufreq

Czy istnieje aplikacja do oszczędzania energii podobna do Jowisza? Sekcja 3.) Skalowanie procesora i częstotliwości

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

Utrzymuj Cpu na niskim poziomie, przekraczaj tylko przy 95% obciążenia procesora

performance     Run the cpu at max frequency

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

Utrzymuj Cpu na niskim poziomie, przekraczaj tylko przy 75% obciążenia procesora

powersave       Run the cpu at the minimum frequency

0

Miałem ten problem w dniach 14.04 - 16.04 (na dzień dzisiejszy). Aby to rozwiązać, musiałem zmusić Ubuntu do zignorowania ograniczenia bios. Dla mnie działało:

Otwórz grub:

sudo vim /etc/default/grub

Zamień wiersz GRUB_CMDLINE_LINUX_DEFAULT:

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

Zaktualizuj grub:

sudo update-grub

Uruchom ponownie:

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 

Pracował dla mnie. Sprawdź liczbę rdzeni procesora i odpowiednio je zaktualizuj. Możesz chcieć umieścić te dodatkowe linie w /etc/rc.local, aby były uruchamiane przy każdym uruchomieniu.

Edycja Ninja: Zastąp 2900000 powyżej wartością w:

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

Czy po tym skalowanie częstotliwości działało poprawnie, temps i wydajność były takie same lub lepsze? Czytasz, /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freqa potem zapisujesz z powrotem tę samą wartość? Dlaczego? Czy zapis 1 oznacza ignore_ppczmianę wartości? (PS może użyć teelub po prostu >zamiast dd)
Xen2050,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.