Ich habe eine Anwendung (Multithread), die in C entwickelt wird und auf dem Produktionsserver ausgeführt wird. Vor kurzem wurde meine Bewerbung 5 Stunden lang hängen gelassen und wir konnten es nicht bemerken.
Also haben wir ein Skript entwickelt, das uns alarmiert, die Informationen über
pstack
strace
lsof
gcore
top
full processlist ( for mysql ).
und startet die Anwendung neu.
Daher erhalten wir eine Warnung sowie die erforderlichen Details, warum der Prozess in den angegebenen gehängt wurde.
Mit welchen Tools analysieren Sie das Problem, wenn die Anwendung nicht verfügbar ist?
Antworten:
Das Rad nicht neu erfinden. Verwenden Sie Monit .
Es ist ein Dienstprogramm zur Überwachung von Dämonen und Prozessen, das auf der Grundlage einer benutzerfreundlichen Konfigurationssyntax eine beliebige Anzahl von Aktionen ausführen kann.
quelle
Sie können eine laufende Anwendung mit gdb und strace debuggen. Diese werden an einen laufenden Prozess angehängt.
quelle