[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