我现在有一台 100TB 的服务器(Ember 型号),上面运行着一些 Facebook 应用程序。服务器运行良好 - 没有任何问题,没有停机时间。
问题是我们开始扩展 Facebook 应用程序,白天我们有大约 3000 个并发用户,并且希望获得更多 :-) 随着应用程序的增加,我们很快就会有双倍的流量。我认为服务器无法支持这种流量,因为在高峰时段我们有很多超时,应用程序不可用。起初我以为我的服务器配置不正确,但慢慢地我明白了,也许这是服务器的限制,因为它只有 8GB 内存,提高 Apache 中的 MaxClients 将开始交换,因为它现在几乎满了。
我现在考虑的选择是购买两台 Hetzner – EQ10 - i7-980X – 24 GB 和一台更轻的服务器/VPS 作为负载均衡器,以尝试获得更好的连接。
我有几个问题:
1) 大约 2500 个用户是一台 Apache 服务器的极限吗?瓶颈究竟是什么?2) 1 对 1 比较,i7-980X – 24 GB 的性能是否优于 XEON 3220 – 8 GB,请记住一个是服务器,另一个是台式机处理器?3) 我需要将哪种服务器/VPS/云放在两个 EQ10 前面,这样我才能实现良好的负载平衡?重要的是它支持所有收入流量,因为它只是重定向它,不是吗?比如说 10,000 个并发用户。我当时想从 Liquidweb 购买一个 VPS 作为负载平衡器。
你觉得怎么样?我的预算大约是每月 400 至 500 美元。
谢谢大家的回答。
答案1
您的瓶颈很可能是 apache 及其内存需求。
更大的服务器只会将你的瓶颈转移到其他地方,比如硬盘和 IO 速度
如果您进行负载平衡,那么需要具有足够数量 RAM 的服务器(可能 4GB 就足够了),我还建议在 IP 故障转移配置中使用一对 LB 服务器,这也将为您提供 HA 功能。对于软件,我推荐 Pound、HA-Proxy 甚至 nginx。
如果您不追求 HA 功能而只是纯粹追求最大容量,那么最好确保您的硬件在网络上尽可能接近,以免增加任何可能导致其他性能问题的额外延迟。
在您支付额外费用之前,您可能会发现将您的网络服务器切换到内存效率更高的服务器可能会为您节省更多时间(和节省),Litespeed 可以直接替代 Apache(但需要付费),而 Nginx 是免费的,但可能需要对您的设置进行一些修改。
其他考虑因素包括缓存、Varnish 的使用等
答案2
答案3
回答第一个问题:Apache 的并发连接限制实际上取决于您提供的内容。如果您仅提供小型静态文件,则可能为 10K,而对于访问数据库的复杂 PHP 脚本,则可能为 0.1。
为了有效扩展,请考虑以下三件事:
- 监控
- 基准测试
- 优化
监控将准确告诉您您的流量情况以及其中的任何模式。始终获得相同流量的服务器可能与获得流量峰值为平均速率 10 倍的服务器的设置不同。它还可以让您了解您的流量如何增长以及在何处增长。
基准测试将告诉您当前系统和配置的限制。我使用 ApacheBench,但有多种方法可以测试系统或部分系统。基准测试和监控将告诉您使用率是否接近 100%,以及限制因素是什么(CPU、RAM、IO 等)。还需要基准测试来量化下一步...
优化就是充分利用您已有的服务器。进行软件/硬件更改,然后对其进行基准测试以查看其效果。即使每次更改只能使情况改善 10%,但通过进行多次更改,其效果也会非常显著。
请注意,您可以跳过部分或全部这些项目,但您可能会为服务器支付比实际需要更多的费用。此外,在某些情况下,您的流量增长如此之快,您没有时间进行适当的调查……现在扩展,以后再考虑优化。您可以跳过此步骤,但您可能
答案4
我们有大约 3000 个并发用户
对于容量规划来说,这不是一个很有意义的指标。虽然如果你运行的是 C# 或 Java,它确实会有一定的影响。但你没有说你运行的是哪个操作系统/代码。
并希望获得更多:-)
你的腿累了吗?;)
...只有 8GB 内存...
对于单个 Web 服务器节点来说,这是很大的内存。对于大多数访问模式,升级服务器中的 CPU/内存/磁盘并不那么有效,而且比使用多台低规格机器要昂贵得多。这不仅仅是 MIP/磁盘 MB/s 的成本 - 这还将负载分散到多个网卡上。而且您可以获得更好的容错能力。
你是否有理由也想为负载均衡器付费?很多人认为他们需要一个,但循环 DNS 有很多优点,特别是对于小型集群(也有一些缺点 - 但还不足以打破平衡)。
如果没有更多的信息,我真的无法诊断你的问题 - 可能是你有足够的硬件,但是 Apache 配置很糟糕。
你看过应用程序性能了吗?调整你的 Apache 配置/数据库架构/代码可能会导致巨大的提高吞吐量。