繁体   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