[Python-de] Sporadisch 10fach langsamer

Diez B. Roggisch deets at web.de
Do Aug 11 10:30:11 CEST 2011


Ich versuch's nochmal, die letzte Mail wurde abgelehnt... wieso auch immer.

> 
>> Sporadisch dauern die Requests zehnmal so lange.
> 
> Welche "Requests"? HTTP-Requests des Browsers an den Web-Server?
> 
>> Es hat sicher **nichts** mit dem Netzwerk zu tun. Die Zeitmessung
>> beginnt nach dem Empfang des Requests und endet vor dem Senden des
>> Response.
> 
> Also dauern die Requests /nicht/ zehnmal so lang sondern (bis) die 
> Antwort (kommt).

Huh, jetzt wird's aber kleinlich...

> 
>> 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.
> 
> Du könntest natürlich auch einfach deinen Martelli zur Hand nehmen und 
> zum Thema Profiling (Module profile und pstats) lesen. Oder in einem 
> Django-Forum (so es denn eines gibt) fragen.

Profiling bei einer Live-Anwendung? Wohl kaum. 

Mein Verdacht wuerde erstmal auf SQL-Statements fallen, und um die zu profilen entweder auf Postgres selbst zurueckgreifen. Da kenne ich selbst aber nur Moeglichkeiten, gerade *jetzt* lang laufende Statements zu sehen. Gibt aber bestimmt noch anderes.

Mindestens aber mal sollte man die Zeit zwischen Abfragebeginn & Antwort messen koennen, in SQLAlchemy zB ueber logging.

Diez


Mehr Informationen über die Mailingliste python-de