[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