Wie diagnostiziere ich Ubuntu CPU Spikes / IO Wait?


19

Ich benutze Ubuntu und alle paar Minuten reagiert es für eine halbe Sekunde bis zu einer vollen Sekunde nicht, was normalerweise kein Problem ist, aber den Versuch, Code extrem frustrierend zu machen, wenn Sie versuchen, die Rücktaste zu drücken oder im Code zu navigieren und nichts passiert. Das Problem ist, dass die Einfrierungen so kurz sind, dass top keine Zeit hat, mir zu zeigen, was die CPU anspornt (vorausgesetzt, etwas ist, aber ich weiß nicht, was dies sonst verursachen könnte).

Weiß jemand, wie man dieses Leistungsproblem behebt?

Bearbeiten: Ich habe versucht, mich mit Gnome Classic (ohne Effekte) anstelle von Unity anzumelden, aber es friert immer wieder ein.

Bearbeiten: Das CPU-Diagramm scheint keine tatsächlichen Spitzen zu zeigen, also scheint es, dass Sie Recht hatten und meine ursprüngliche Diagnose, dass CPU-Spitzen das Problem sind, falsch war. Ich vermute nun, dass ich warte. Ich kann mich nicht erinnern, dass dies in den wenigen Wochen passiert ist, in denen Windows 7 Starter ausgeführt wurde, was mich zu der Annahme veranlasst, dass es nicht (nur?) Die Hardware ist. Kann ich irgendetwas ändern, um dies zu verbessern? Ich verwende ein Acer Aspire One D257 mit Ubuntu 11.10.

Bearbeiten: Ausgabe von dmesgist bei http://paste.ubuntu.com/1060054/ und kern.log ist bei http://paste.ubuntu.com/1060055/


Diese Frage ist sowohl im Allgemeinen als auch in Ihrem speziellen Fall interessant .
Rafał Cieślak

1
Wenn Sie ein CPU-Diagramm aktivieren, können Sie sicher sein, dass es sich um eine CPU-Spitze handelt, die die Verlangsamung verursacht. E / A kann ein anderer Schuldiger sein oder in einigen Fällen eine Netzwerkverzögerung. Passiert es, egal welches Programm Sie gerade aktiv benutzen?
David Oneill

Hervorragender Punkt David, das mache ich. Ich benutze Vim und Firefox immer nur auf dieser Maschine, sie sind immer offen und es passiert, egal was im Vordergrund steht. Zuerst dachte ich, es handele sich um die automatische Generierung von Tags aus Vim, aber nachdem ich diesen Abschnitt auskommentiert und meine gesamte vimrc-Datei gelöscht habe, tritt das Problem immer noch auf. Ich werde versuchen, anhand des Diagramms festzustellen, ob es sich tatsächlich um einen CPU-Spitzenwert handelt oder um eine E / A-Wartezeit.
Jeff Welling

Wie reagiert es nicht? Stoppt Ihr Mauszeiger die Aktualisierung?
AdamKG

Entschuldigung für die verspätete Antwort, ich denke, es friert auch den Zeiger ein, aber es passiert nicht mehr oder ich habe es in letzter Zeit nicht so oft bemerkt. Interessanterweise habe ich mein verschlüsseltes USB-Backup-Laufwerk auch in letzter Zeit häufig eingesteckt und gemountet. Ich frage mich, ob das damit zusammenhängen könnte. Ich versuche, mit und ohne angeschlossenem Laufwerk weitere Tests durchzuführen, um festzustellen, ob A) dies zusammenhängt und B) der Zeiger während dieses Einfrierens nicht mehr reagiert.
Jeff Welling

Antworten:


12

Es gibt zwei zusätzliche Tools, die Sie möglicherweise ausprobieren möchten:

Wenn Sie mit diesen beiden Tools nicht das bekommen, was Sie wollen, müssen Sie möglicherweise Entwickler-Tools wie OProfile oder Sysprof verwenden .

Alle aufgeführten Tools sind in Ubuntu-Repositorys verfügbar

Was Ihre Beobachtung mit USB betrifft, so verhalten sich einige USB-Controller nach dem, was ich gehört habe, mit bestimmter Hardware, die Interrupt-Stürme verursachen kann, etwas schuppig. Dies könnte dazu führen, was Sie beschreiben. Versuchen Sie, nach USB-Interrupt-Sturm zu suchen, und Sie werden einige Treffer erhalten.


Hm, ich werde mich sicherlich mit Interrupt-Stürmen befassen, aber das Problem ist weiterhin aufgetreten, selbst nachdem ich die Verwendung von USB-Geräten auf diesem System so regelmäßig eingestellt habe. Die meiste Zeit werde ich auf dem Weg zur Arbeit (Transit) programmieren und dann werde ich es bemerken.
Jeff Welling

5

Ich habe htop jahrelang benutzt und endlich herausgefunden, wie man die CPU-Auslastung nach Zahlen und Prozentsätzen ermittelt. Ich bin überrascht, dass ich das verpasst habe.

htop iowait Bild

Drücken Sie F2

Pfeil zu "Verfügbare Zähler"

Markieren Sie den CPU-Durchschnitt

F5 oder F6 zum Hinzufügen zur Spalte

Pfeil zum Punkt "CPU [Bar]"

Drücken Sie F4, bis Sie "CPU [Text]" erhalten

Sie können auch IORates erhalten

F2-> Spalten-> Verfügbar

Fügen Sie IO_RATE, IO_READ_RATE, IO_WRITE_RATE hinzu


2

Der beste Weg, dies zu sehen, ist die Verwendung einer Befehlszeilenanwendung wie topoder htop Installieren Sie htop .

oben
oben

htop
htop

Sie müssen es jedoch eine Weile beobachten, bis Sie sehen, was die Spitze verursacht (wenn es sich in der Tat um eine Spitze der CPU-Auslastung handelt und nicht um eine E / A-Wartezeit, die möglicherweise nicht in allen Fällen abgefangen wird).


1
Ich kenne top, aber nicht htop. Gibt htop IO wait an. Wie interpretiere ich diesen Teil der Ausgabe? Ich habe die FAQ auf der htop-Website gelesen, aber es wurde nicht erwähnt, dass ich warte.
Jeff Welling

@JefWelling: es geht nicht afaik. In beiden Fällen wird dies jedoch als CPU-Auslastung angezeigt.
RolandiXor

Es gibt einen zusätzlichen Monitor für E / A-Aktivitäten. Es heißt iotop (siehe danjo133s Antwort).
FuzzyQ

2

Ein neues und sehr hilfreiches Tool ist cpustat. Es verfügt über eine grafische Oberfläche, mit der Sie mehrere Pids im Zeitverlauf überwachen können.

Bildbeschreibung hier eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.