J'ai écrit une application Web compatible WSGI en utilisant web.py qui charge quelques douzaines de données MB en mémoire au démarrage.Application Web Python: Comment conserver l'état
Cela fonctionne plutôt bien avec le serveur intégré web.py. Cependant, en utilisant Apache 2 + mod_wsgi, chaque requête recharge les données, relançant essentiellement le programme. En raison du temps de chargement de plusieurs secondes, c'est insupportable.
Est-il inhérent à mod_wsgi ou peut-il être configuré? Quelles sont mes alternatives?
Est-ce inhérent à mod_wsgi? Non. C'est inhérent au HTTP. Vous aurez besoin de poster le plus petit morceau de code qui montre comment vous pensez que "démarrage" fonctionne. En outre, vous devrez fournir votre configuration mod_wsgi, en particulier, indiquant si vous utilisez ou non le mode "démon". –
@ S.Lott Merci d'avoir mis en place le mode démon - avoir un processus persistant à travers les demandes conserve les données côté serveur en mémoire. Faites-en une réponse, et je vais accepter. –
Oui, probablement que vous utilisiez le mode intégré et pire encore prefork MPM, cela signifie que les demandes pourraient aller à beaucoup de processus et d'applications ayant besoin d'être beaucoup chargées dans un nouveau processus. Voir 'http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html' pour les discussions sur les problèmes avec prefork et le mode intégré, vous ne configurez pas les choses correctement. –