Django性能/内存使用情况

时间:2012-10-28 15:14:07

标签: django performance apache memory nginx

我正在EC2 Small实例(1.7 GB RAM)上运行我的应用程序的alpha版本,其中包含postgres和apache(wsgi-mod不是守护进程但直接)。

表现没问题,但可能会更好。如果有太多测试用户加入,我也担心内存使用情况。

从Apache切换到nginx服务器是否明智?有没有任何Django开发人员做到这一点,并对结果更满意?我们也欢迎任何其他提示。

由于

3 个答案:

答案 0 :(得分:4)

我们在gunicorn服务器中使用nginx和我们的Django应用程序。到目前为止,性能非常好,但我还没有与Apache设置进行任何直接比较。内存使用量非常小,nginx占用大约10MB内存,大约150MB(但它也服务于多个应用程序)。当然,这可能因app而异。

我建议只是试一试,在网上和/或gunicorn网站上设置一些教程应该很容易。还可以获得一些类似的测试用例,并使用某种监控软件(如munin)来查看随时间的变化。

答案 1 :(得分:2)

为什么不使用mod_wsgi的守护进程模式?如果你使用的是嵌入式模式,那么如果你不小心设置Apache,就会出现内存问题。

请阅读:

http://blog.dscpl.com.au/2012/10/why-are-you-using-embedded-mode-of.html

并观看我的PyCon演讲:

http://lanyrd.com/2012/pycon/spcdg/

同时修改您的问题并指出您使用的是哪种Apache MPM以及MPM设置是什么。

对于使用诸如gunicorn或uWSGI之类的替代方案,对于类似的配置,内存要求并没有太大的不同,因为底层服务器不会决定使用多少内存,它会发生成为您在其上运行的特定Python Web应用程序。一个常见的误解是,gunicorn或uWSGI以某种方式神奇地解决了所有问题,并且Apache无法做到这一点。为Python Web应用程序正确设置Apache并且不依赖于它的默认值,它与其他解决方案一样强大,并且可以根据您的要求提供更多灵活性。

非常建议您进行一些监控,以找出真正的问题和瓶颈。

答案 2 :(得分:1)

我的结果好坏参半。当应用程序快速,无阻塞时,nginx在较小的内存占用情况下表现良好。流量越高,收益越大。

我有几个GIS应用程序有点慢,在这种情况下,nginx失败了。我的建议是:不要在任何可能阻塞几秒钟的东西上使用nginx + wsgi。