GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich die CPU-Frequenzskalierung deaktivieren?

Als Web-Performance-Süchtiger suche ich immer nach Möglichkeiten, die Systemleistung zu verbessern und Webanwendungen zu beschleunigen. Und heute teile ich mit Ihnen die Magie der CPU-Frequenzskalierung und eine praktische Anleitung zum Deaktivieren der CPU-Frequenzskalierung, um Ihr System mit voller CPU-Geschwindigkeit zu betreiben.

Bevor wir uns mit dem Deaktivieren der CPU-Frequenzskalierung befassen, wollen wir verstehen, was CPU-Drosselung ist.

Was ist CPU-Frequenzskalierung?

Seit Kernel v. 2.6.18 (CentOS) und 2.6.32 (Ubuntu) wurde eine neue Funktion namens Dynamische CPU-Frequenzskalierung (auch bekannt als CPU-Drosselung) eingeführt.

Diese CPU-Frequenzskalierung ermöglicht es einem Prozessor, mit einer geringeren als der maximal zulässigen Frequenz zu laufen. Dies geschieht nur, um den Stromverbrauch zu schonen, hat aber den Nachteil, dass Sie nicht Ihre volle CPU-Geschwindigkeit nutzen können.

Wie finde ich heraus, mit welcher Geschwindigkeit meine CPU läuft?

Führen Sie diesen Befehl aus, wie Sie unten sehen:

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

Die Ausgabe sollte ungefähr so ​​aussehen:

[[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

Wie Sie sehen, beträgt die ursprüngliche CPU-Geschwindigkeit @ 3,40 GHz, die laufende CPU-Geschwindigkeit in MHz liegt jedoch bei etwa 1600. Die CPU läuft mit der Hälfte ihrer Gesamtgeschwindigkeit.

Dies kann auch mit einem coolen CPU-Paket namens cpufrequtils / cpupoweruitls

erreicht werden

Installieren Sie cpupowerutils unter CentOS/Debian

yum install cpupowerutils -y

Installieren Sie cpupowerutils unter Ubuntu/Debian

apt-get install cpufrequtils

Führen Sie nun diesen Befehl aus und er zeigt Ihnen unter anderem Informationen über Ihre minimale und maximale CPU-Geschwindigkeit:

cpupower frequency-info

Die erwartete Ausgabe sollte ungefähr so ​​aussehen:

[[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

CPU-Frequenzskalierung unter Linux (RedHat und Ubuntu) deaktivieren

Sehen wir uns an, wie die Skalierung der CPU-Frequenz auf den gängigsten Linux-Plattformen deaktiviert wird.

Für CentOS-/RHEL-Benutzer

Ändern wir die CPU-Frequenz mit dem folgenden Befehl auf die maximal verfügbare Geschwindigkeit:

cpupower frequency-set -g performance

Mal sehen, ob sich wieder etwas an der CPU-Laufgeschwindigkeit ändert:

[[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]:~]

Wie Sie im vorherigen Befehl sehen, läuft die CPU jetzt höher als zuvor, wenn sie benötigt wird.

Eine andere Möglichkeit, dies manuell zu tun, besteht darin, diesen Befehl auszuführen, der den CPU-Governor für alle Ihre CPUs vom „On-Demand“-Modus in den „Performance“-Modus ändert:

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

Wenn auf Ihrem System irgendein Daemon läuft, der die CPU-Geschwindigkeit steuert, stoppen Sie ihn einfach, damit Ihr System mit voller CPU-Geschwindigkeit läuft:cpuspeed, cpufreqd oder powerd.

service cpuspeed stop

Für Ubuntu-/Debian-Benutzer

Bearbeiten Sie diese Datei, und wenn sie nicht existiert, erstellen Sie sie einfach:

nano -w /etc/default/cpufrequtils

Fügen Sie die folgende Zeile hinzu:

GOVERNOR="performance"

Speichern Sie mit STRG + X und drücken Sie dann Y.

Nächster Schritt:Ondemand-Daemon deaktivieren Um zu vermeiden, dass Ihre Änderungen nach dem Neustart des Servers verloren gehen, führen Sie diesen Befehl aus:

update-rc.d ondemand disable

Das ist alles. Überprüfen Sie Ihre Einstellungen noch einmal mit diesem Befehl:

cpufreq-info

Schlussfolgerung

Wenn Sie Ihre CPU mit voller Geschwindigkeit laufen lassen, kann dies die Leistung Ihrer Anwendungen wirklich steigern. Die meisten modernen CPUs haben bereits wirklich gute CPU-Kühlsysteme, daher sollte dies kein Problem sein, stellen Sie jedoch sicher, dass dies nicht zu einem enormen zusätzlichen Stromverbrauch oder einer Überhitzung der CPU führt. Wie Sie sehen, können Sie die CPU-Frequenzskalierung sowohl für RedHat- als auch für Debian-basierte Distributionen einfach deaktivieren. Bitte teilen Sie uns mit, wenn Sie diesbezüglich Probleme oder Fragen haben.

Weiterführende Literatur:

  • CPU-Frequenzskalierung in Linux mit cpufreq
  • ArchLinux CPU Frecuency Scaling Docs
  • RedHat CPUFreq Governors-Dokumentation
Wie kann ich die CPU-Frequenzskalierung deaktivieren? wurde zuletzt geändert:11. April 2017 von Esteban Borges
Linux
  1. So deaktivieren Sie ETag in NGINX

  2. Ubuntu 16.04 – Wie kann ich Secure Boot deaktivieren?

  3. Wie deaktiviere ich SELinux auf CentOS?

  4. CentOS / RHEL 6 :So deaktivieren Sie IPv6

  5. Wie kann ich sehen, in welchem ​​CPU-Kern ein Thread läuft?

So deaktivieren Sie Swap unter Linux

Wie kann ich eine Datei unter Linux symbolisch verknüpfen?

Wie kann ich feststellen, ob ich mich in einem Bildschirm befinde?

So erhalten Sie die CPU-Auslastung

Wie kann ich den Internetzugang für Programme deaktivieren, die in Wine ausgeführt werden?

So deaktivieren Sie eine CPU