Apache是阻止I / O还是非阻塞IO?
答案 0 :(得分:2)
它为每个连接分配一个进程,所以它可能是阻塞的(除非它在与socket i / o相同的线程上监视超时?)。
为了确保您应该在源代码中查找套接字创建调用,并遵循对套接字描述符的访问...我甚至不确定Apache是否必须执行分叉模式,也许它也有异步模式
修改强>
是的,有一堆“Multi-Processing Modules”,它决定了如何处理多个HTTP请求。
答案 1 :(得分:2)
Apache支持两者。默认阻止。有使用NIO事件的非阻塞模块。 它是一种基于性能的调整,用于决定使用哪种方法。
对于提供静态内容,最好使用非阻塞,但是对于servlet容器,最好使用阻塞[thread locals]。
答案 2 :(得分:0)
Apache阻止i / o afaik。 nginx使用基于事件的非阻塞单线程,内存使用率比apache低得多。 Apache每个连接使用一个线程,这就是它处理多个连接的方式。