Gab*_*osa 26 keepalive apache-2.2
在任何默认安装中,Apache 2 都关闭了 keepAlive,但查看另一台服务器时,keepAlive 模块已打开。
那么,我怎么知道 keepAlive 是否适合我?我在哪里可以找到一些关于配置这个的好例子?
Jes*_*r M 32
已经有 2 个很好的答案,但可能最重要的现实生活问题尚未提及。
首先,OP 可能想阅读前面的 2 个答案和这篇小博文,以了解什么是 keepalive。(作者没有详细说明连接打开的时间越长 TCPI/IP 变得“更快”的部分。确实,更持久的连接受益于IP 窗口缩放,但效果并不显着,除非文件是大,或者带宽延迟乘积异常大。)
使用 Apache 时反对 HTTP Keepalive 的一大争论是它会阻止 Apache 进程。即,使用 keepalives 的客户端将阻止“他的”Apache 进程为任何其他客户端提供服务,直到客户端关闭连接或达到超时。在同一时间段内,这个 Apache 实例可以为许多其他连接提供服务。
现在,一个非常常见的 Apache 配置是Prefork MPM和 PHP/Perl/Python 解释器,以及上述语言的应用程序代码。在这种情况下,每个 Apache 进程都是“重”的,因为它占用了几兆字节的 RAM(Apache 与解释器和应用程序代码链接)。这与每个保活的 Apache 实例的阻塞一起,是低效的。
一种常见的解决方法是使用具有不同配置的 2 个 Apache 服务器(都在同一物理服务器上,或根据需要在 2 个服务器上):
然后,您可以在需要时扩展这种动态和静态内容的分离,例如:
另一种避免阻塞 Apache 的方法是使用具有更智能连接处理的负载平衡器,例如Perlbal。
.. 以及更多。:-)
Keepalive 在某些情况下可能很好,但在其他情况下可能非常糟糕。它们减少了建立新连接的时间和精力,但它们会在 keepalive 超时期间占用服务器资源。例子:
如您所见,KeepAliveTimeout 还将在优化服务器性能方面发挥重要作用。
查看您的使用模式并自行决定。
| 归档时间: |
|
| 查看次数: |
26404 次 |
| 最近记录: |