[Python-de] Sporadisch 10fach langsamer

Jens Diemer python_gmane at jensdiemer.de
Di Aug 16 10:49:13 CEST 2011


Bevor du anfängst irgendwas zu ändern würde ich auf dem Server mal iotop/htop 
laufen lassen und beobachten. Evtl. wird irgendwas periodisch erledigt und 
bremst den Server?

Festplatte geprüft? Nicht das hin und wieder Daten nur sehr langsam gelesen 
werden und den Server lähmt.

Ansonsten könnte man mal eine kleine Django-Middleware schreiben, die einfach 
die Zeiten pro URL festhält. Vielleicht ist es immer die selbe URL bzw. view?


Am 10.08.2011 22:18, schrieb Thomas Guettler:
> 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
>
>
> _______________________________________________
> python-de maillist - python-de at python.org
> http://mail.python.org/mailman/listinfo/python-de
>


-- 

Mfg.

Jens Diemer


----
http://www.jensdiemer.de



Mehr Informationen über die Mailingliste python-de