Django站点在重新启动或不活动期间加载非常慢

时间:2011-08-17 14:41:01

标签: python django apache mod-wsgi httpd.conf

我正在Apache上运行Django站点,并且在一段时间不活动(大约1小时)后,我的初始页面加载速度很慢。我可以通过离开一个小时或弹出服务器来复制。在初始加载之后,页面一致地加载到< 1秒。

我假设(猜测)问题是Python解释器+ Python模块在这些不活动期后再次加载到内存中?

我已关注http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html并在守护程序模式下运行 mod_wsgi

服务器配置:

Timeout 20
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
ServerLimit 10

<IfModule mpm_prefork_module>
    StartServers          2
    MinSpareServers       2
    MaxSpareServers       2
    MaxClients            4
    MaxRequestsPerChild   0
</IfModule>

...

WSGIDaemonProcess django display-name=%{GROUP}
WSGIScriptAlias / /path/to/osqa.wsgi process-group=django application-group=%{GLOBAL}

上面的配置明显有问题,还是有办法将Python解释器保留在内存中?

也许这完全是一个不同的问题?

由于

1 个答案:

答案 0 :(得分:0)

一些想法:

  • 确保您有足够的内存,并且有一些免费且健康的磁盘缓存可用。根据你的工作,你应该至少有1gb到4 + gb。提到了Top,我推荐htop:http://htop.sourceforge.net/
  • 增加磁盘缓存,例如,如果您使用的是IO差的虚拟机,例如EC2 / EBS。
  • 将数据库调整为与内存有关的适当值。
  • 如上所述,如果缓存检查超时。如果没有人在小时缓存中访问将会过期。
  • 配置Linux(?)以减少交换:
    • echo 20&gt;的/ proc / SYS / VM / swappiness
    • 永久:在/etc/sysctl.conf
    • 中添加vm.swappiness