no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | adminstoriesstrace [20120903 05:54] (aktuell) – angelegt Dirk Deimeke | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== strace ====== | ||
+ | * Urspruenglicher Autor: Ramon Kukla | ||
+ | * Urspruengliches Datum: 16.09.2011 | ||
+ | |||
+ | Ist schon wieder Freitag? Ja tatsaechlich, | ||
+ | |||
+ | Es gibt ja verschiedene Wege mit Problemen umzugehen. Hat man bei Problemen entsprechende Logs oder Rueckmeldungen, | ||
+ | |||
+ | Es passiert aber auch immer wieder, dass ein Tool nicht tut was man erwartet, man aber auch keine Rueckmeldung bekommt. Fuer mich ist das oft der Punkt an dem ich aus einer von zwei Moeglichkeiten waehle. Ist das Tool neu und nicht wichtig genug, fliegt es wieder vom Rechner. Nutze ich das Tool aber schon laenger, oder ist es wichtig, bzw. gibt es keine sinnvolle Alternative, | ||
+ | |||
+ | Die man-Page von strace sagt, dass man " | ||
+ | |||
+ | < | ||
+ | brk(0) | ||
+ | access("/ | ||
+ | mmap2(NULL, 8192, PROT_READ|PROT_WRITE, | ||
+ | access("/ | ||
+ | open("/ | ||
+ | fstat64(3, {st_mode=S_IFREG|0644, | ||
+ | mmap2(NULL, 64435, PROT_READ, MAP_PRIVATE, | ||
+ | close(3) | ||
+ | access("/ | ||
+ | open("/ | ||
+ | read(3, " | ||
+ | fstat64(3, {st_mode=S_IFREG|0755, | ||
+ | mmap2(NULL, 1444360, PROT_READ|PROT_EXEC, | ||
+ | mprotect(0x26a000, | ||
+ | mmap2(0x26b000, | ||
+ | mmap2(0x26e000, | ||
+ | ... | ||
+ | write(1, " | ||
+ | ) = 6 | ||
+ | close(1) | ||
+ | munmap(0xb781c000, | ||
+ | close(2) | ||
+ | exit_group(0) | ||
+ | |||
+ | Die Ausgabe von strace ist auch schon im Standard relativ umfangreich. Wobei man sich nicht von der schieren Menge erschrecken lassen sollte. Man wird viele Eintraege sehen, die beinahe selbst erklaerend sind. Ein Teil " | ||
+ | |||
+ | Ein haeufiger Fehler ist, dass eine Datei nicht gefunden oder geoeffnet (z.B. Berechtigung) werden kann. Wird eine Datei nicht gefunden kann das in einem strace etwa wie folgt ausschauen. | ||
+ | |||
+ | < | ||
+ | |||
+ | Hier wird die Datei '' | ||
+ | |||
+ | strace hat, wie so viele tolle Kommandos, umfangreiche Optionen. Eine sehr interessante Option, die einem schon mal zeigt was auf einen zukommt, ist '' | ||
+ | |||
+ | <code bash> | ||
+ | ramon | ||
+ | % time | ||
+ | ------ ----------- ----------- --------- --------- ---------------- | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | -nan 0.000000 | ||
+ | ------ ----------- ----------- --------- --------- ---------------- | ||
+ | 100.00 | ||
+ | |||
+ | Auch interessant, | ||
+ | |||
+ | <code bash>% time | ||
+ | ------ ----------- ----------- --------- --------- ---------------- | ||
+ | | ||
+ | | ||
+ | 0.53 0.000026 | ||
+ | ... | ||
+ | 0.00 0.000000 | ||
+ | ------ ----------- ----------- --------- --------- ---------------- | ||
+ | 100.00 | ||
+ | |||
+ | ...und nachfolgend < | ||
+ | |||
+ | <code bash>% time | ||
+ | ------ ----------- ----------- --------- --------- ---------------- | ||
+ | | ||
+ | | ||
+ | 0.31 0.000028 | ||
+ | ... | ||
+ | 0.00 0.000000 | ||
+ | ------ ----------- ----------- --------- --------- ---------------- | ||
+ | 100.00 | ||
+ | |||
+ | Man sieht, mit strace kann man viel Spass haben. Aber neben dem Spass hilft es in der Tat durchaus Problemen auf den Grund zu gehen. Man kann strace uebrigens auch an laufende Prozesse anhaengen. Allerdings habe ich schon mal gesehen, dass beim Beenden von strace auch der Prozess abgeschmiert ist. Das ist, meine ich, nicht normal, sollte man aber im Hinterkopf behalten. Vor allem wenn man ein Prozess auf einem produktiven Server mit 500 Benutzern untersuchen will. | ||
+ | |||
+ | [[adminstoriesartikel|Zurück zur Uebersicht]] |