在Windows上使用Django上的多个CPU

时间:2010-10-22 14:43:48

标签: windows django

我有一个在Windows上运行的Django应用程序(通过Apache + mod_wsgi),它受CPU限制。但是Windows上的Apache只执行MPM(多线程)工作者,而不是prefork(多进程工作者),而单个Python解释器不会利用多个CPU。

我会切换到FastCGI,但这需要Flup,Windows不支持。

到目前为止,我提出的唯一解决方案是启动多个Django实例,然后使用Apache负载平衡来分发请求。只要我在命令窗口中启动Django实例,这样就可以正常工作,但我似乎无法弄清楚如何将多个Django实例设置为Windows服务(这样我就可以让它们在系统启动时自动启动)。 / p>

有没有人想出一个让基于Django的网站在Windows服务器上使用多个CPU的策略?

2 个答案:

答案 0 :(得分:2)

我认为您的问题实际上是“如何运行多个Apache实例作为Windows服务?”来自docs

httpd.exe -k install -n "ApacheBE1" -f "c:\files\my_BE1.conf"
httpd.exe -k install -n "ApacheBE2" -f "c:\files\my_BE2.conf"

只是想知道你有这个部分,你尝试设置多个重量级的Apache后端实例并在它们之间进行负载平衡吗?

your.host.com:80
 - load balancer / light weight front-end
 - balancing between localhost:9001-900x
localhost:9001
 - mod_wsgi / heavy weight back-end 1
localhost:9002
 - mod_wsgi / heavy weight back-end 2    
localhost:9003
 - mod_wsgi / heavy weight back-end 3    

答案 1 :(得分:0)

也许你可以使用mod_wsgi的“守护进程”模式。 Here's some documentation。在标题操作模式下查看,它表示它的操作类似于FastCGI。

此外,look at the configuration guidelines。在页面中搜索“守护进程”,你会看到一堆关于如何设置它的信息。