Apache可以处理多少个连接/多少带宽?

时间:2009-08-14 07:09:32

标签: performance apache webserver

这是一个指向好文档/好文章的请求。我正在寻找有关Apache服务器可以合理处理多少连接的信息,以及可能如何在多个服务器之间进行负载平衡的信息。我已经完成了谷歌搜索,但初学者更难判断什么是好文档。

3 个答案:

答案 0 :(得分:7)

Apache 1.3具有一些令人讨厌的可扩展性限制,但后来的版本旨在与硬件和操作系统一起扩展,使它们成为瓶颈而不是Web服务器本身。但是,与往常一样,如果您想要超级性能,则可以归结为如何配置和调整它。每种情况都有自己的要求,并在此处记录:

http://httpd.apache.org/docs/2.2/misc/perf-tuning.html

以上假设您正在提供静态内容,这是Apache擅长的地方。如果你在它后面运行webapps,那就是你的瓶颈,而不是Apache。

答案 1 :(得分:2)

不幸的是,你会感到失望。

Apache处理连接(实际上是任何其他Web服务器)的能力受限于其上的Web应用程序正在做什么。如果您正在提供静态页面,那么您将能够使用非常少的硬件来处理大量请求。

根据IO工作负载(Apache无法比IO子系统更快地运行 - 安装足够的ram来缓存整个内容,如果可以的话),您将能够在任何合理规格的现代盒子上填充千兆位网络。 / p>

一旦你填满了一个千兆网络,你就会有其他需要担心的事情。

但是你真正需要负载均衡器的原因是因为你的应用程序减慢了Apache并耗尽了盒子的资源。您的应用程序不会无限快速,也无法无限扩展。你需要解决这些问题。

答案 2 :(得分:0)

正如之前的答案所指出的那样,Apache通常不是瓶颈,而是通常是应用服务器(PHP,Mongrel等)。但是,如果您只提供静态内容,那么您将需要进行一些基准测试以了解它的速度。当然,它不太可能固定Apache能够提供的确切数量,因为很大程度上取决于您如何配置它(例如禁用持久连接)和服务器的规格。但是为了得到一个大概的估计,您可以使用this benchmark作为参考,因为它运行在1-8个核心(使用一个或两个服务器),因此您应该能够找到与您正在考虑的硬件相当的东西。

当然,为了获得最准确的结果,您需要使用abhttperf等负载生成器自行测试。