Wie kann ich die Ursache für die mangelnde Reaktion unter Linux untersuchen?

1326
A. Donda

Ich entschuldige mich, dass das Problem, über das ich schreibe, nicht sehr konkret ist. Ich verwende KDE4 in Debian-Tests und verwende KDEs Dateimanager Dolphin sehr oft, meistens ohne Probleme. Ich vermute, dass Dolphin kürzlich nach einem Systemupdate oft nicht mehr reagiert. Dies kann direkt beim Start passieren - eine Minute vergeht, bevor das Fenster geöffnet wird - es kann auch später passieren, dass nach einiger Zeit alles in Ordnung war. Der Fensterinhalt wird nicht mehr aktualisiert. Es dauert einige Zeit, bis eine Datei geöffnet wird, nachdem sie angeklickt wurde usw. Bei einem Neustart wird das Problem manchmal behoben, jedoch nicht für längere Zeit. Ich dachte, es könnte mit dem Zugriff auf das optische Laufwerk zu tun haben, aber das Problem bleibt auch dann bestehen, wenn sich kein Medium im Laufwerk befindet. - Ich habe keine Netzwerkdateisysteme. Es gibt auch keine anderen Prozesse, die CPU-Zeit und / oder Festplattenbandbreite beanspruchen.

Die Frage, die ich frage, betrifft nicht dieses spezielle Problem mit Dolphin, sondern diese:

Wie kann ich generell mit der Situation umgehen, dass ein Programm nicht mehr reagiert? Gibt es eine Standardstrategie, um herauszufinden, was ein solches Problem verursacht, so dass 1) ich möglicherweise einen Fix oder einen Workaround für mich selbst finden kann und / oder 2) einen nützlichen Fehlerbericht einreichen kann?

In diesem Fall, weil ich dachte, es könnte etwas mit Dolphin zu tun haben, der versucht, auf bestimmte Dateien zuzugreifen und aufgehängt zu werden, weil es eine Art Block gibt, begann ich mit dem Delfin straceund versuchte, die Nachrichten zu verstehen. Es gibt jedoch viele "Fehler" vom Typ "EAGAIN (Ressource vorübergehend nicht verfügbar)" oder "ENOENT (keine solche Datei oder ein solches Verzeichnis)", von denen die meisten kein Problem darstellen. Das einzige, was ich zuverlässig gelernt habe, ist, dass selbst wenn Dolphin nicht auf Benutzereingaben reagiert, das nicht bedeutet, dass nicht viel auf Mausbewegungen und Mausklicks reagiert wird.

Ist stracedas richtige Werkzeug? Wenn ja, nach was muss ich in seiner Ausgabe suchen? Wenn nicht, was soll ich stattdessen verwenden?

1

1 Antwort auf die Frage

1
r0berts

Nun, strace druckt eine Liste der Systemaufrufe des Programms. Es mag nützlich und lehrreich sein, es zu benutzen, aber wenn Sie kein Programmierer sind, ist es vielleicht nicht sehr praktisch.

htop 

Wenn Sie möchten, dass ein schlecht reagierendes System wieder funktionsfähig ist, dann ist eines der nützlichsten Programme, die ich gefunden habe, htop. Im Grunde zeigt es Ihre Echtzeit-Systemnutzung in einem Terminal. Sie sollten ein wenig darüber lesen - es ist sehr gut dokumentiert und es wurden bereits einige Artikel darüber veröffentlicht. Sie verwenden es in einem Terminal. Wenn Ihr Desktop eingefroren ist, können Sie sich jedoch weiterhin über ssh in Ihrem Computer anmelden. ZB von Ihrer Windows-Maschine über PUTTY. Sie erhalten eine Liste der Prozesse und die wichtigsten Informationen dazu. Mit F6 sortieren Sie Prozesse nach spezifischer Ressourcennutzung (z. B. Prozessor, Speicher, Swap) und sehen so, welches Programm der Ressource-Hog ist. Mit F4 können Sie nach Programmnamen filtern - beginnen Sie einfach mit der Eingabe. F5 zeigt Ihren Prozessbaum und zeigt wahrscheinlich an, welche Dateien von Ihrem Programm geöffnet werden. Mit F9 können Sie das gewünschte KILL-Signal an das Programm senden. Eine schöne Sache ist - Sie können sich einfach mit den Pfeiltasten auf und ab bewegen und die Nummern drücken, um Optionen auszuwählen - Sie sollten ein wenig experimentieren, um dies zu verstehen.

Meine Faustregel lautet: Wenn das System nicht so sehr aufgehängt hat, dass durch Drücken von Num Lock das NumLock-Licht nicht blinkt, besteht die Chance, dass einige einfache Untersuchungen und - SIGHUP oder SIGKILL von htop die Stabilität wieder herstellen. Wenn sich die Situation wiederholt, können Sie den Fehlerbericht ausfüllen.

Hallo r0berts, danke für deine Antwort. Die Sache ist, es ist nicht das System oder der Desktop, der eingefroren ist, sondern nur dieses spezielle Programm. Ich habe "top" verwendet, um den Status der Systemressourcen zu betrachten, und ich konnte nichts Außergewöhnliches finden. "htop" sieht wirklich gut aus, danke für den Tipp! Aber ich glaube nicht, dass es dieses Problem aufklären wird. Und obwohl ich kein professioneller Programmierer bin, bin ich nicht völlig ahnungslos. Haben Sie eine Idee, wie ich ein Problem mit einem Programm identifizieren könnte, bei dem das Einfrieren nicht mit einem hohen CPU-, Speicher- oder Bandbreitenverbrauch zusammenhängt? A. Donda vor 10 Jahren 0
Hallo, ja, ich glaube ich gehöre in die gleiche Kategorie - kein Programmierer, aber nicht völlig ahnungslos. Wenn Ressourcen nicht das Problem sind, denken wir wahrscheinlich an andere Programmierfehler. Ein paar weitere Werkzeuge, um genau zu sehen, was mit Delphin geschieht, wäre lsof Pidofdoolphin r0berts vor 10 Jahren 0
Entschuldigung für vor. Ein paar weitere nützliche Tools: ** lsof ** `lsof pidOFdoolphin` (erhalten Sie pid von` top` oder `pidof`). Das wird Dateien sehen, die von Delphin geöffnet werden. ** wireshark **, um zu sehen, ob ausgehende Anforderungen vorliegen, die nie zurückkommen; Dateimanager warten oft auf eine Zeitüberschreitung des Netzwerks, was als Standbild erscheinen kann. Könnte ein Fehler im Programm oder Plugin sein. Schalten Sie das Netzwerk vollständig aus und prüfen Sie, ob das gleiche Verhalten auftritt. ** nmon ** ist eine weitere nützliche Möglichkeit, um Ihr System zu betrachten. Plus eine interessante Forumsdiskussion mit etwas ähnlichen Bedingungen [link] (http://forum.kde.org/viewtopic.php?f=63&t=92253) r0berts vor 10 Jahren 1
Wenn Sie zu der Lösung kommen, können Sie sie hier posten. Es ist interessant, warum ein Programm (das häufig verwendet wird) nicht reagiert und keinen Einfluss auf die Systemressourcen oder das Netzwerk hat. r0berts vor 10 Jahren 1