Wie kann ich feststellen, welcher Prozess meine CPU belastet, wenn sie nicht 100% ergeben?

9

Das System Monitor-Applet von Ubuntu zeigt kontinuierlich 100% CPU-Auslastung an. Wenn ich darauf klicke, wird es auf der Registerkarte Ressourcen ebenfalls kontinuierlich zu 100% angezeigt. Wenn ich jedoch zu Prozessen gehe, um herauszufinden, welcher Prozess der Schuldige ist, gibt es nichts über 10%. Wenn ich oben renne, gibt es nichts über 10%. Die einzelnen Prozesse summieren sich nicht zu 100%. Ich versuche, viele Prozesse zu beenden, aber die Gesamtnutzung beträgt weiterhin 100%. Wie kann ich herausfinden, was die CPU belastet?

Alt-Text

Dies ist eine ungewöhnliche Situation auf einem Computer, den ich täglich benutze und der niemals annähernd 100% der CPU entspricht, es sei denn, ich mache etwas, das dies erfordert (wie das Laden von 32 Firefox-Registerkarten), wonach es wieder auf einen normalen Leerlaufpegel zurückkehrt. Es ist keine Neuinstallation oder so. Es gibt keinen Grund, warum der Prozessor maximal sein sollte. Ich bin mir nicht sicher, wann es angefangen hat oder ob ich etwas geändert habe, das es verursacht hat.

Normalerweise würde ich top oder System Monitor verwenden und den Prozess finden, der außer Kontrolle geraten ist, aber diesmal kann ich mit diesen Tools nichts finden. Es bleibt nach einem Neustart und allem bestehen.

Und der Prozessor ist offensichtlich heiß, so dass es sich nicht um eine fehlerhafte Anzeige handelt.

Update: Ich habe versucht, jeden Prozess einzeln zu beenden, bis das Problem behoben war, und das Beenden des Vino-Servers hat es schließlich behoben, obwohl dieser Prozess nie über 5% ging. Ich hatte Remotedesktop vor einigen Tagen aktiviert (und habe es jetzt offensichtlich deaktiviert).

Die Frage bleibt jedoch: Wie hat es ein einzelner Prozess geschafft, 100% CPU zu nutzen, während top diesen Prozess nur bei 5% zeigte? Wie identifiziere ich solche Schuldigen in Zukunft?

Sieht so aus, als wäre ich nicht der einzige , der dieses Problem hatte:

Immer noch ein Problem in flott und karmisch. Interessanterweise zeigen sowohl System Monitor als auch htop nicht, dass die Summe der einzelnen Prozesse annähernd 100% CPU beträgt.

Endolith
quelle
2
Ist Ihr System auch langsam? Könnte eine falsche Lesart sein.
Bobby

Antworten:

9

Wenn Sie "nichts über 10%" sagen, meinen Sie "nichts über 10%"? Es sind nur 11 Dinge bei ~ 9% erforderlich, um insgesamt 100% zu erreichen.

Ein Teil der gemessenen verwendeten CPU-Zeit kann auch eine E / A-Wartezeit sein - eine Zeit, in der ein Prozess etwas tun könnte, aber nicht, weil er darauf wartet, dass ein E / A-Gerät antwortet (dh eine Festplattenanforderung gestellt hat) und die Festplatte hat noch nicht das richtige Datenbit gefunden und zurückgegeben). Oben ist dies in den CPU-Zeilen als% wa-Maß zu sehen. Der E / A-Wartezustand ist etwas seltsam - die CPU ist eigentlich nicht mit irgendetwas beschäftigt (wenn also ein anderer Prozess eine Berechnung durchführen möchte, kann er dies), zählt jedoch für die Systemlastzahlen, da die Systemlast mehr repräsentiert als nur die CPU-Aktivität.

Es wäre hilfreich, die Ausgabe von top -n 1zu Ihrer Frage hinzuzufügen .

Wenn Ihr Kernel aktuell genug ist, um über die E / A-Abrechnungsfunktion zu verfügen (wenn Sie eine aktuelle Version von Ubuntu verwenden, sollte dies der Fall sein) und iotop -n 1 -obaktiviert ist, können Sie durch Ausführen von (iotop) sehen, welche Prozesse aktiv E / A-Vorgänge ausführen wird möglicherweise nicht standardmäßig installiert, wenn Sie es nicht haben, versuchen Sie es mit apt-get install iotopoder indem Sie es im GUI-Paketmanager suchen.

David Spillett
quelle
1
+1 für das Bitten, top -n 1der Frage
etwas
2

Ich hatte ein ähnliches Problem. Der Prozessor tuckerte voll mit, und keiner der Prozesse in System Monitor zeigte etwas. Ich fand eine Antwort mit dem Befehl "top" in einem Terminalfenster. Es zeigte sich, dass apt meine CPU ohne guten Grund belastete. Warum hat System Manager dies nicht angezeigt? Es stellt sich heraus, dass es unter Ansicht für alle Prozesse eine Option gibt. Meins wurde als Meine Prozesse überprüft, daher habe ich den Täter nie gesehen. Hoffe das hilft.

Ike Hall
quelle
0

Ich habe das gleiche Problem, fand aber heraus, dass Xorg 50% der CPU verwendete, während dies zeigte, dass es [dieser Fehler] mit dem Befehl behoben werden konnte sudo rmmod ums_realtek. Diesmal verwendete Xorg nur etwa 5-10% CPU im Systemmonitor, aber auf der Registerkarte Ressourcen wurden immer noch 100% angezeigt.

Während ich den Systemmonitor überwachte, sah ich ein Blinken einer Root-Prosa mit 100% CPU! Ich hatte keine Zeit zu sehen, was es war, aber ich bin sicher, dass dies etwas damit zu tun hat.

NatureShade
quelle
-1

Die erste Frage ist, ob Ihr System langsam erscheint oder nicht reagiert. Es ist schließlich Ihre CPU, für die Sie bezahlt haben, und Sie haben das Recht, sie für Ihre Zwecke in vollem Umfang auszuführen. Die zweite Frage ist, ob Sie nur versuchen, zu viel mit Ihrem System zu tun, und ob möglich ein Upgrade in Betracht ziehen sollten. Meine erste Linux-Box hatte eine langsame 486, und es war wirklich einfach, sie zu übertreffen. Wenn Sie beispielsweise auf einem OLPC XO arbeiten, sind Ihre Ressourcen sehr begrenzt.

Im Ernst, es ist unwahrscheinlich, dass Sie gleichzeitig zahlreiche übermäßige Ressourcenfresser ausführen. Wenn kein Prozess mehr als 10% übernimmt, wird Ihr System von Enten zu Tode geknabbert, und Sie können die Last nicht reduzieren, ohne das zu reduzieren, was Sie tun.

Überprüfen Sie jedoch Ihre Systemdienste und deaktivieren Sie alle Dienste, die Sie nicht möchten. Deinstallieren Sie diejenigen, von denen Sie wirklich sicher sind, dass Sie sie nicht wollen ( sudo apt-get remove foo). Insbesondere wenn Sie das System überlasten, kann eine Reduzierung der Last nur hilfreich sein. Versuchen Sie, Programme zu beenden, die Sie nicht verwenden.

Wenn es einen Prozess gibt, der die gesamte verfügbare CPU verwendet, versuchen Sie, ihn zu finden, indem Sie top ausführen und notieren, wie viel Prozent der Ressourcen die Hauptprozesse verwenden. Wenn Sie einige töten, prüfen Sie, ob einer schneller steigt als die anderen. Wenn Sie einen solchen Prozess beenden, werden Sie natürlich nicht allzu viel kaufen, da er nicht mehr als 10% der Last ausmacht.

David Thornley
quelle
Wenn ich die CPU benutzen würde, würde ich es wissen. Es läuft während des normalen Betriebs nicht zu 100% ununterbrochen und sollte es sicherlich nicht, wenn ich alles geschlossen habe, was mir einfällt, dass es möglicherweise verwendet wird.
Endolith
-1
  1. apt-get install cpufrequtils
  2. öffnen /etc/rc.conf
  3. Fügen MODULES=(Sie den MODULEN Folgendes hinzu: # your-modules-not-touch #acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. Starten Sie neu

Nach dem Neustart sollten Sie ausführen, um cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorszu sehen, welche Module geladen sind.

Während der Arbeit können Sie die Gouverneure nach Ihren Wünschen ändern. Zum Beispiel:

  • cpufreq-set -r -g ondemand

Sie können einen der folgenden Regler verwenden:

  • Leistung : es läuft die CPU bei max Takt (Modul: cpufreq_performance)
  • ondemand : dynamisch wechselt zwischen der CPU (s) verfügbaren Taktfrequenzen basierend auf sys Last (Modul: cpufreq_ondemand)
  • konservativ : Ähnlich ondemand, aber CPU (s) schaltet Taktrate aller verfügbaren Frequenzen allmählich durch (basierend auf sys Last) (Modul: cpufreq_conservative)
  • Stromspar : CPU (s) fährt mit Mindestgeschwindigkeit (Modul: cpufreq_powersave)
  • Userspace : Ermöglicht dem Benutzer das manuelle Einstellen der CPU-Taktrate. (Modul: cpufreq_userspace)

Wenn Sie GNOME2 verwenden, gibt es ein Applet, was erstaunlich ist.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Panel
  2. Applet hinzufügen
  3. fang an zu tippen : CPU, du solltest es sehen können :)
  4. Klicken Add

Mit diesem Applet können Sie zwischen verfügbaren Reglern wechseln (Sie haben sie /etc/rc.confzuvor hinzugefügt ).

Zum Beispiel verwende ich die ondemandganze Zeit, weil ich keine volle Leistung benötige, um Eclipse und Android Emulator auf meinem ArchLinux: P auszuführen

Summa Summarum - google nach cpufrequtils und lerne, wie man es benutzt :) Dieses pckg hat mir Zeit und Geld gespart; D.

Prost!

Nikola
quelle