Frage

Ich versuche, die Ursache von Performance-Engpässe in einer Anwendung auf die Spur ich unter Linux bin debuggen. Die verschiedenen beteiligten Prozesse scheinen viel ihrer Zeit blockiert auf der I / O-Anfragen zu verbringen, und ich frage mich, ob jemand irgendwelche Linux Tricks wusste, dass können Sie sehen, Warum ein bestimmter Prozess blockiert / welche Ressourcen es ist warten auf? Gibt es irgendetwas nützlich in /proc zum Beispiel?

War es hilfreich?

Lösung

Wie auch immer zu verarbeiten ist, verwenden Sie top den Zustand zu überprüfen. Dann könnte man es durch Truss oder strace laufen. Das soll im Einzelnen, was los ist. Wenn das nicht möglich ist, Haken es bis zu gdb . Tools wie iostat könnten Sie im Allgemeinen zeigen, was los ist (zB wenn Platte ist Engpass) .

Andere Tipps

Sie könnten den strace Befehl verwenden, um zu sehen, was Ihr Prozess bis zu ist. Vielleicht finden Sie es auch nützlich lsof auf Ihrem Prozess ausgeführt, um zu sehen, welche Dateien und Steckdosen es verwendet.

strace ist dein Freund, weil Sie die Zeit in jedem Systemaufruf ausgegeben bekommen, plus können Sie die Datei-Deskriptoren wählen und System rufen Sie interessiert sind Sie können aber auch Unterstützung aus dem Kernel bekommen. Haben einen Blick auf < a href = "http://www.latencytop.org/" rel = "noreferrer"> latencytop

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top