【发布时间】:2013-03-15 10:37:40
【问题描述】:
到目前为止的事实
根据“mod_fcgi is NOT a replacement for mod_fastcgi”和“Issues with mod_fcgid and multi-threaded FastCGI application”,mod_fcgid 并非旨在期望 FastCGI 服务器能够同时处理多个请求,即并非旨在期望 FastCGI 服务器是多线程的.
前者说:
它们都支持已发布的“FastCGI”协议,但 他们控制 FastCGI 服务器的方式有很大不同。 mod_fcgid 快速消除 FastCGI 服务器并启动 新的。
后者说:
看来 mod_fcgid 不知道我的服务器 是多线程的,能够处理多个请求。
这只是其中的两个引号,其他地方还有一些。
连发
线程不仅是为了节省 CPU 和内存,避免创建新进程的开销(众所周知,创建线程比创建进程更轻量),而且可以通过硬件或操作系统性能来缓解;这也是一个逻辑问题,不太容易缓解:线程属于同一个进程,这不仅是性能,而且是逻辑,例如。进程无法共享线程可以共享的内容,因为进程是独立运行的(以 IPC 为模,但不一样)。
至少出于这个逻辑原因,多线程 FastCGI 服务器的问题可能会被提出。一个 FastCGI 服务器,当它被设计为一个多线程服务器时,可能拥有一个对所有请求处理程序都是全局的上下文(在进程之间共享可能很大且成本很高)。为每个并发请求派生一个新进程不再允许确保公共上下文。
问题
上面的两个引用是否仍然正确(一个是 2011 年,另一个是 2010 年)?我在网上搜索了该主题,但找不到任何相关内容。如果它仍然正确,那么它是否总是正确的,或者mod_fcgid 是否有预期的计划,以了解多线程 FastCGI 服务器并接受这些服务器可能旨在处理多个并发请求?
【问题讨论】:
标签: multithreading apache fastcgi mod-fcgid fcgid