这是一个指向好文档/好文章的请求。我正在寻找有关Apache服务器可以合理处理多少连接的信息,以及可能如何在多个服务器之间进行负载平衡的信息。我已经完成了谷歌搜索,但初学者更难判断什么是好文档。
答案 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个核心(使用一个或两个服务器),因此您应该能够找到与您正在考虑的硬件相当的东西。