GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu zakázat škálování frekvence CPU?

Jako závislý na výkonu webu neustále hledám způsoby, jak zlepšit výkon systému a zrychlit webové aplikace. A dnes se s vámi podělím o kouzlo škálování frekvence CPU a praktický návod, jak deaktivovat škálování frekvence CPU, aby váš systém běžel na plnou rychlost CPU.

Než se pustíme do toho, jak deaktivovat škálování frekvence CPU, pojďme si vysvětlit, co je to omezení CPU.

Co je škálování frekvence CPU?

Od jádra v. 2.6.18 (CentOS) a 2.6.32 (Ubuntu) byla představena nová funkce nazvaná Dynamické škálování frekvence CPU (neboli omezování CPU).

Toto zvyšování frekvence CPU umožňuje procesoru běžet na nižší frekvenci, než je maximální povolená frekvence. To se provádí pouze kvůli zachování spotřeby energie, ale nevýhodou toho je, že nemůžete využít plnou rychlost procesoru.

Jak zjistím, jakou rychlostí běží můj procesor?

Spusťte tento příkaz, jak vidíte níže:

grep -E '^model name|^cpu MHz' /proc/cpuinfo

Výstup by měl být podobný tomuto:

[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000

Jak vidíte, původní rychlost CPU je @ 3,40 Ghz, ale běžící rychlost CPU v Mhz je kolem 1600. CPU běží na poloviční své celkové rychlosti.

Toho lze také dosáhnout pomocí skvělého balíčku CPU s názvem cpufrequtils / cpupoweruitls

Nainstalujte cpupowerutils na CentOS/Debian

yum install cpupowerutils -y

Nainstalujte cpupowerutils na Ubuntu/Debian

apt-get install cpufrequtils

Nyní spusťte tento příkaz a mimo jiné vám zobrazí informace o vaší minimální a maximální rychlosti procesoru:

cpupower frequency-info

Očekávaný výstup by měl být podobný tomuto:

[[email protected]:~]cpupower frequency-info
analyzing CPU 0:
  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:  Cannot determine or is not supported.
  hardware limits: 1.60 GHz - 3.80 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 1.60 GHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: 1.60 GHz (asserted by call to hardware)
  boost state support:
    Supported: yes
    Active: yes
    3600 MHz max turbo 4 active cores
    3700 MHz max turbo 3 active cores
    3800 MHz max turbo 2 active cores
    3800 MHz max turbo 1 active cores

Zakázat škálování frekvence CPU v systému Linux (RedHat a Ubuntu)

Podívejme se, jak deaktivovat škálování frekvence CPU na nejpopulárnějších platformách Linux.

Pro uživatele CentOS / RHEL

Změňme frekvenci procesoru na maximální dostupnou rychlost pomocí následujícího příkazu:

cpupower frequency-set -g performance

Podívejme se, zda se znovu nezměnila rychlost CPU:

[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3497.218
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3392.296
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3397.742
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 2283.578
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3457.640
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 2133.234
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.257
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3740.265
[[email protected]:~]

Jak vidíte v předchozím příkazu, CPU nyní běží rychleji než dříve, když je to potřeba.

Dalším způsobem, jak to udělat ručně, je spuštění tohoto příkazu, který změní regulátor CPU z režimu „na vyžádání“ na režim „výkon“ pro všechny vaše CPU:

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

Pokud na vašem systému běží některý z démonů, který řídí rychlost CPU, jednoduše je zastavte, aby váš systém běžel na plnou rychlost CPU:cpuspeed, cpufreqd nebo powerd.

service cpuspeed stop

Pro uživatele Ubuntu / Debian

Upravte tento soubor, a pokud neexistuje, jednoduše jej vytvořte:

nano -w /etc/default/cpufrequtils

Dovnitř přidejte následující řádek:

GOVERNOR="performance"

Uložte stisknutím CTRL + X a poté stiskněte Y.

Další krok:deaktivujte démona ondemand, abyste neztratili své změny po restartování serveru, spusťte tento příkaz:

update-rc.d ondemand disable

To je vše. Znovu zkontrolujte nastavení pomocí tohoto příkazu:

cpufreq-info

Závěr

Provoz vašeho CPU na plnou rychlost může skutečně zvýšit výkon vašich aplikací. Většina moderních CPU již má opravdu dobré systémy chlazení CPU, takže by to neměl být problém, ale ujistěte se, že to nezpůsobuje obrovskou spotřebu energie nebo přehřívání CPU. Jak vidíte, můžete snadno zakázat škálování frekvence CPU pro distribuce založené na RedHat i Debian. Pokud k tomu máte nějaké problémy nebo dotazy, dejte nám prosím vědět.

Další čtení:

  • Škálování frekvence CPU v Linuxu pomocí cpufreq
  • Dokumenty škálování frekvence CPU ArchLinux
  • Dokumentace RedHat CPUFreq Governors
Jak mohu zakázat škálování frekvence CPU? byl naposledy upraven:11. dubna 2017 Estebanem Borgesem
Linux
  1. Jak mohu zakázat automatické aktualizace KernelCare?

  2. Jak zakázat SELinux na CentOS?

  3. CentOS / RHEL 6 :Jak deaktivovat IPv6

  1. Jak mohu symbolicky propojit soubor v Linuxu?

  2. Jak mohu deaktivovat tlačítko mé jednotky CD/DVD?

  3. Jak deaktivovat jeden CPU

  1. Jak dočasně nebo trvale zakázat SELinux

  2. Jak zakázat ETag v NGINX

  3. Jak zakázat Cryptswap?