代码之家  ›  专栏  ›  技术社区  ›  Chris Curvey

在Windows上的Django上使用多个cpu

  •  4
  • Chris Curvey  · 技术社区  · 14 年前

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

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

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   istruble kalyan    14 年前

    我认为您的问题是“如何将多个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    
    
        2
  •  0
  •   Evan Porter Cal    14 年前

    也许你可以使用mod_wsgi的“daemon”模式。 Here's some documentation . 看看标题下的操作模式,它说它的操作类似于FastCGI。

    也, look at the configuration guidelines