簡體   English   中英

Windows上針對CPU綁定應用程序的Python WSGI部署

[英]Python WSGI deployment on Windows for CPU-bound application

在Windows上部署CPU綁定的Python-WSGI應用程序時,我有哪些選擇?

該應用程序受益於多個CPU(圖像處理/編碼),但GIL阻止了它們使用它們。

我的理解是:

  • mod_wsgi在Windows上不支持WSGIDaemonProcess,Apache本身僅運行一個進程

  • 所有基於fork的解決方案(flup,spawning,gunicorn)僅適用於UNIX

我還有其他部署選項嗎?

PS:我在serverfault上問過,但是有人建議在這里問。

我已成功使用isapi-wsgi在Windows IIS上部署WSGI Web應用程序(我假設由於您是在Windows上進行部署,因此IIS是一個選擇)。

創建一個IIS應用程序池來承載您的應用程序並將其配置為Web Garden(“屬性” |“性能” |“最大工作進程”數)。

免責聲明:我從未親自使用過此功能(我一直使用默認的App Pool配置,其中工作進程的最大數量為1)。 但是據我了解,這將啟動更多進程來處理請求。

可能會有些混亂,但是您可以使用子流程模塊自行觸發工作進程。 我很確定Popen.wait()和/或Popen.communicate()應該釋放GIL。 但是,您仍然需要創建流程,因此您可能無法從標准CGI中獲得很多收益。

另一個選擇是讓單獨的服務器/工作進程始終運行並使用某種形式的IPC,盡管這並不是一個簡單的選擇。 看一下多處理模塊,可能還有Pyro。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM