Welchen Einfluss hat die CPU-Geschwindigkeitsanpassung auf die in (beispielsweise) htop gemeldeten Prozentsätze der CPU-Auslastung?

Welchen Einfluss hat die CPU-Geschwindigkeitsanpassung auf die in (beispielsweise) htop gemeldeten Prozentsätze der CPU-Auslastung?

Wie wirkt sich die CPU-Geschwindigkeitsstufe auf die in (zum Beispiel) htop gemeldeten Prozentsätze der CPU-Auslastung aus? Wie sieht es mit dem normalen Top aus?

Wenn meine CPU also auf 800 MHz heruntergeregelt wird und die volle Geschwindigkeit 2 GHz beträgt, bedeuten 5 % Auslastung, dass die CPU 0,05 * 800 = 40 Millionen Zyklen lang lief, oder 0,05 * 2000 = 100 Millionen Zyklen lang?

Antwort1

Es fällt mir schwer, eine vernünftige Erklärung für die unterschiedlichen Ansätze zu finden, aber Folgendes sehe ich:

InLinux, mit htop, sind die Prozentsätze der CPU-Auslastung relativ zu denaktuelle Taktfrequenz. Wenn Ihre CPU vollständig heruntergefahren ist, sehen Ihre nahezu im Leerlauf befindlichen Hintergrundprozesse möglicherweise viel aktiver aus, als sie tatsächlich sind, wenn Sie sie mit „aktiveren“ Prozessen vergleichen, die möglicherweise 10 Sekunden später ausgeführt werden und dazu führen, dass Ihre CPU hochgefahren wird.

Hier gibt es eine wirklich gute Antwort (https://unix.stackexchange.com/a/58541/9854), das erklärt, wie das funktioniert – im Grunde verfolgt das System „Ticks der Uhr“ und htop wandelt diese für einen bestimmten Zeitraum in einen Prozentsatz um, indem es Ihre (momentane/zu diesem Zeitpunkt) Taktfrequenz betrachtet. Diese Methode scheint manchmal Zahlen über 100 % zu ergeben, aber ich schätze, sie müssen das normalisieren/begrenzen.

Das machtnichtscheinen, wie Task-Manager inWindowsmeldet die CPU-Auslastung – der Schwerpunkt scheint auf der Nutzung im Verhältnis zu einer „Standard“-Kapazität von 100 % für Ihre CPU zu liegen (ich bin nicht sicher, wie in einer Welt des Übertaktens und Turbo-Boosts entschieden wird, was 100 % sind).

Ein Beispiel für die Folge dieses Unterschieds ist, dass unter genau identischen Umständen, wenn meine CPU pathologisch auf 200 MHz heruntergetaktet ist, anstatt der normalen 900 MHz im Leerlauf und 3600 MHz im belegten Zustand, Linux htop „CPU-Kapazität erschöpft, Panik, Panik“ meldet, während Windows sagt „Hey, alles cool, CPU ist total unterausgelastet“, obwohl der CPU-Durchsatz nicht ausreicht, um den Mauszeiger zu verfolgen …

An beiden Stellen können Sie diese Situationen „verstehen“, wenn Sie wissen, was Sie tun:

  • In Windows (10) können Sie bei geöffnetem „Weitere Details“ auf die Registerkarte Leistung im Abschnitt CPU wechseln, um die aktuelle CPU-Frequenz anzuzeigen
  • Unter Linux mit htop, mit einrichten F2und unter „Anzeigeoptionen“ das Kontrollkästchen „Auch CPU-Frequenz anzeigen“ aktivieren. Dadurch werden die Auslastungszahlen in den Kontext gesetzt.

Antwort2

Die Schrittweite ist irrelevant. 5 % bedeutet, dass die CPU-Kerne 5 % der Zeit nützliche Arbeit geleistet haben.

Multiplizieren Sie Geschwindigkeiten nicht auf diese Weise mit Brüchen. Die Zahlen, die Sie dadurch erhalten, sind im Grunde bedeutungslos. Die „40 MHz“, die Sie erhalten, sind eine bedeutungslose Zahl – bei 40 MHz passierte nichts.

verwandte Informationen