Re: [Python-de] Hat Tornado mit Pypy ein Speicherleck?
Diez B. Roggisch <deets@web.de> wrote:
ab -n 100000 -c 100 http://127.0.0.1:8888/ ==> 97m
Auch wenn man sich natuerlich gerne fragt wofuer soviel Speicher - ist das wirklich stetig steigend, oder geht es asymptotisch gegen eine Maximalwert?
So wie es im Moment aussieht steigt der Speicher pro 100000 Requests um ca. 7-10MB. Bleibt das so?
Habe nicht weiter laufen lassen als bis dahin (bzw. gestern bis knapp über 100 MB, ohne zu notieren). Da Tests mit "--jit off" ebenfalls steigenden Speicherbrauch anzeigen (wenn auch geringer) dürfte es das nicht sein. Es sei denn es sind 2 unterschiedliche Leaks in PyPy selbst. Werde im Laufe des Tages Ergebnisse mit höheren Request-Zahlen nachreichen. Bei 200 MB breche ich es aber ab. Server haben zwar gut Speicher, aber bring's trotzdem nicht übers Herz einen Overhead von 200 MB für ein Mini-Programm zu akzeptieren. Zumal im Einsatz Tornado in mehreren Prozessen laufen wird/sollte. Falls die Geschwindigkeit wirklich benötigt werden sollte, werde ich eine Lösung finden. Bis dahin ist normales Python gut genug. (99 % aller Webprojekte könnten sogar mit lahmen Ruby laufen, ohne Cache und allem. Von daher ist das eher akademisch.) -- Web (en): http://www.no-spoon.de/ -*- Web (de): http://www.frell.de/ <!--[if IE 6]><script>for(x in document.open);</script><![endif]-->
On Wednesday, August 24, 2011 10:52:13 am Stefan Scholl wrote:
Diez B. Roggisch <deets@web.de> wrote:
ab -n 100000 -c 100 http://127.0.0.1:8888/ ==> 97m
Auch wenn man sich natuerlich gerne fragt wofuer soviel Speicher - ist das wirklich stetig steigend, oder geht es asymptotisch gegen eine Maximalwert?
So wie es im Moment aussieht steigt der Speicher pro 100000 Requests um ca. 7-10MB. Bleibt das so?
Habe nicht weiter laufen lassen als bis dahin (bzw. gestern bis knapp über 100 MB, ohne zu notieren).
Da Tests mit "--jit off" ebenfalls steigenden Speicherbrauch anzeigen (wenn auch geringer) dürfte es das nicht sein.
Es sei denn es sind 2 unterschiedliche Leaks in PyPy selbst. Werde im Laufe des Tages Ergebnisse mit höheren Request-Zahlen nachreichen.
Bei 200 MB breche ich es aber ab. Server haben zwar gut Speicher, aber bring's trotzdem nicht übers Herz einen Overhead von 200 MB für ein Mini-Programm zu akzeptieren. Zumal im Einsatz Tornado in mehreren Prozessen laufen wird/sollte.
Kann ich verstehen. Aber ich halte 200MB jetzt fuer nicht so aussergewoehnlich mehr heutzutage - auch wenn man sich natuerlich fragt, wofuer genau... Aber Java ist da ja aehnlich, und angesichts der Tatsache, dass PyPy + Java aehnliche GCs haben AFAIK (also nicht mehr ueber refcounting arbeiten), kann ich mir halt schon vorstellen, dass da eine ganze Menge Speicher akkumuliert wird bevor der wirklich was wegwirft. Mach mal ein paar millionen requests. Noch eine Frage: warum *mehrere* Tornado-Prozesse? Das macht doch den Sinn des ganzen etwas fragwuerdig. Oder willst du die an verschiedene Cores binden? Diez
participants (2)
-
Diez B. Roggisch
-
Stefan Scholl