[Python-de] Sporadisch 10fach langsamer
Thomas Guettler
guettli at thomas-guettler.de
Mi Aug 10 22:18:36 CEST 2011
Hallo,
gegeben ist eine Intranet Anwendung (Django+Postgres), die
auf einen gut ausgebauten Server läuft.
Sporadisch dauern die Requests zehnmal so lange. Ich konnte
die Ursache aber noch nicht finden.
Es hat sicher **nichts** mit dem Netzwerk zu tun. Die Zeitmessung
beginnt nach dem Empfang des Requests und endet vor dem Senden
des Response.
Die Datenbank wird per Unix-Domain Socket angesprochen.
Parallel laufen auch keine Prozesse, die Last (CPU, Memory, IO) erzeugen
könnten. Der Server langweilt sich nur: 8 Cores, 8 GB RAM.
Dummerweise lässt sich das nicht reproduzieren, tritt aber täglich auf.
Habt Ihre Ideen wie man den Fehler finden könnte?
Meine Idee: Alle N Millisekunden merkt sich der Request-Handler
in welcher Methode er sich gerade befindet. Am Ende des Requests
wird das ausgegeben, falls der Request deutlich länger als sonst
gedauert hat. So könnte man die Stelle im Quelltext finden, die
deutlich länger dauert als sonst.
Dieses Logging sollte den Ablauf nicht deutlich verlangsamen
(Produktivsystem)
Wie könnte man das machen? Um Threads habe ich bisher immer einen
weiten Bogen gemacht.
Gruß,
Thomas
Mehr Informationen über die Mailingliste python-de