我有一个php应用程序,它通过exec()和cgi执行Python脚本。
我有很多页面可以做到这一点,虽然我知道WSGI是更好的长期方式,但我想知道对于中小量的流量,这种安排是否可以接受。
我问,因为有一些帖子提到Apache必须为每个Python解释器实例生成一个新进程,这会增加开销,但我不知道它对于一个较小的项目有多重要。
谢谢。
答案 0 :(得分:0)
对于CGI,服务器每次收到请求时都会启动PHP解释器的副本。 PHP反过来启动Python进程,在exec()之后被杀死。启动两个进程并在每个请求上执行所有导入都会产生巨大的开销。
在FastCGI或WSGI的情况下,服务器保持几个进程预热(可运行进程的最小和最大数量是可配置的),因此在某些内存的价格下,您每次都无法启动新进程。但是,您仍然必须在每次exec()调用时启动/停止Python进程。如果您可以使用不带exec()的Python应用程序,例如将PHP部分移植到Python,它将大大提高性能。
但正如您所提到的,这是一个小项目,因此唯一重要的标准是当前服务器是否可以承受当前负载。