Volevo testare python27 su appengine così ho migrato la mia app da python25. Le prestazioni sono aumentate di oltre 2 volte per ogni richiesta! Poi sono tornato a python25 e le prestazioni sono tornate come prima. Ecco una foto:Appengine, degrado delle prestazioni con python27
(millisecondi/richiesta) (cgi gestore python 27, quindi Python25)
La mia applicazione utilizza Werkzeug, Jinja2, e memcache viene utilizzato molto spesso. Quali ragioni possono causare un calo così drammatico delle prestazioni? O è solo perché python2.7 su Appengine è ancora in beta?
Alcuni dettagli sulle applicazioni:
è abbastanza semplice negozio on-line. Ci sono alcuni compiti posticipati con generazione di PDF, tuttavia questi non influenzano molto il grafico generale perché la prima pagina ottiene la maggior parte dei colpi. Quasi tutto è memcached. Impiega fino a ~ 0,8 sec con la cache vuota per caricare una pagina con python 2.5. Le pagine non memorizzate nella cache impiegano molto tempo per essere caricate principalmente perché ci sono molte query db. Le pagine memorizzate nella cache vengono caricate in 60 ~ 100 ms. Il tempo di caricamento medio è ~ 150 ms. Con le prestazioni di python 2.7 è terribile. Le pagine non memorizzate nella cache richiedono 2+ secondi per essere caricate. Le pagine memorizzate nella cache vengono caricate in oltre 200 ms.
Purtroppo non ho dati di profilazione e non riesco a capire cosa rallenti di Python 2.7.
I miei numeri per il tempo di caricamento della pagina vengono raccolti dalla pagina live che serve ~ 10 req/sec e 1 istanza di python25 residente si occupa facilmente di questo carico.
Ho anche testato python 2.7 con wsgi e threadsafe:yes
, ma le prestazioni sono migliorate solo un po 'rispetto a python 2.7 e cgi.
non ho alcuna idea del perché sarebbe così lento, ma potrebbero essere testati un sacco di cose da quando python27 è ancora sperimentale nel motore di app. – bigblind
Non ci hai detto nulla della tua app o di cosa fa, né quali misure hai preso per la diagnosi. Come potremmo sapere quale potrebbe essere il problema? –
sto vedendo la stessa cosa. Un collo di bottiglia che ho identificato era memcache, le chiamate api erano più lente su tutte le richieste che stavo testando, ma non sarei sorpreso se si trattasse di ogni chiamata API. –