加速 django 服务器

加速 django 服务器

我的设置是 django 1.3 和 ubuntu 10.04 的默认 mod_wsgi 和 apache 包。我在开发虚拟机上测试了我的应用程序的一个视图(DEBUG 和调试工具栏关闭):

ab -n 200 -c 5 http://127.0.0.1/

每秒收到 4 个请求。这似乎很慢,所以我简化了查询,使用了索引等,直到调试工具栏告诉我有 4 个查询花费了 8 毫秒。运行相同的测试,我每秒只收到 8 个请求。CPU 似乎一直处于 100% 的状态。对于现在相当简单的视图来说,这似乎相当慢,但它只是一个低功率的 VM。

我决定启动一个大型 ec2 实例(4 个 CPU),看看我能在这类机器上获得什么样的性能,结果令人惊讶的是,每秒只收到 13 个请求。我该如何更改 apache/mod_wsgi 的配置,以从这类机器中获得更高的性能?

我认为我正在使用 worker 而不是 prefork:

$ /usr/sbin/apache2 -l
Compiled in modules:
  core.c
  mod_log_config.c
  mod_logio.c
  worker.c
  http_core.c
  mod_so.c

我的工作人员配置是:

<IfModule mpm_worker_module>
    StartServers          2   
    MinSpareThreads      25  
    MaxSpareThreads      75  
    ThreadLimit          64  
    ThreadsPerChild      25  
    MaxClients          150 
    MaxRequestsPerChild   0   
</IfModule>

我的 WSGI 设置如下:

WSGIScriptAlias / /home/blah/site/proj/wsgi.py
WSGIDaemonProcess blah user=blah group=blah processes=1 threads=10
WSGIProcessGroup blah

非常感谢您的帮助!

答案1

将 WSGIDaemonProcess 进程数增加到至少 CPU 数量的两倍,然后重试

相关内容