我有一个100TB服务器是这一刻(Ember模式),并运行几个Facebook应用程序。 服务器进展顺利 – 没有问题,没有停机时间。
问题是,我们正在开始扩展我们的Facebook应用程序,白天我们有3000个并发用户,跳跃得到更多:-)随着应用程序的增加,我们很快就期望有双倍的stream量。 我认为服务器不能支持这样的stream量,因为在高峰时间,我们会得到很多的时间和应用程序不可用。 起初我以为我有configuration的服务器错过,但慢慢我明白,也许这是服务器的限制,因为它只有8GB的内存,提高MaxClients在Apache将开始交换,因为它现在几乎已经满了。
我现在想的select是获得两个Hetzner – EQ10 – i7-980X – 24 GB和一个较轻的服务器/ VPS作为负载均衡器来尝试获得更好的连接。
所以我有几个问题:
1)aprox 2500用户是否是一台Apache服务器的限制? 瓶颈究竟是什么? 2)在1比1的比较中,i7-980X-24GB比XEON 3220-8GBperformance更好,记住一个是服务器和另一个桌面处理器? 3)我需要在两个EQ10-S之前放置什么样的服务器/ VPS /云,这样才能实现良好的负载均衡? 重要的是它支持所有的收入stream量,因为它只是redirect它,不是吗? 说10.000个并发用户。 我想从Liquidweb获得一个VPS作为LoadBalancer。
你怎么看? 我的预算是每月400-500美元。
谢谢大家的答案。
你的瓶颈很可能是apache和它的记忆饥饿。
一个更大的服务器只会将你的瓶颈移动到其他地方,可能是硬盘和IO速度
如果你做负载平衡,那么一个服务器有大量ram(可能4gb应该削减它)将是需要的,我也build议使用一对LB服务器在IP故障转移configuration,这也将给你的能力。 对于软件,我会build议磅,HA代理甚至nginx。
如果您不打算使用HA容量,而只使用最大容量,那么确保您的硬件尽可能靠近networking以避免增加任何其他可能导致其他性能问题的额外延迟将会好得多。
在你掏出额外的成本之前,你可能会发现把你的networking服务器换成更高效的内存可能会给你带来更多的时间(和节省),Litespeed可以作为Apache的替代品(但是成本),而Nginx是免费的但可能需要对您的设置进行一些修改。
其他的考虑是caching,使用清漆等
回答你的第一个问题:Apache的并发连接限制确实取决于你所服务的内容。 如果你只是提供小的静态文件,它可能是10K,而一个复杂的PHP脚本访问数据库可能是0.1。
要有效地扩展考虑三件事情:
监测会告诉你到底是什么样的stream量和其中的任何模式。 总是获得相同stream量的服务器的设置可能不同于获得stream量峰值x10平均速率的服务器。 它也会让你看到你的stream量如何以及在哪里增长。
基准testing会告诉你目前系统和configuration的限制是什么。 我使用ApacheBench,但有很多方法来testing系统或者只是其中的一部分。 基准testing和监测将告诉你,你有多接近100%的使用率,限制因素是什么(CPU,RAM,IO等等)。 基准还需要量化下一步…
优化是让你已经拥有最多的服务器。 进行软件/硬件更改,然后对其进行基准testing,以查看其效果。 即使每次更改只通过进行很多更改而改善了10%,也可以达到相当的程度。
请注意,您可以跳过任何或所有这些项目,但是您付出的代价可能超过您的需要。 此外,在某些情况下,您的stream量正在迅速增长,您没有足够的时间进行适当的调查,现在需要进行扩展,并担心之后对其进行优化。 你可以跳过这一步,但你可以
你可能正在达到Apache的极限。 使用lighttpd或nginx这样的轻量级服务器可以更好地caching一些内容,并直接提供其他内容。 您可以将所有这些放在负载均衡基础架构上,如您所述。
看看我在这个问题上的答案,我描述了如何使用VPS做到这一点,但它完全适用于你的情况,也许给你一些想法。
我们有3000个并发用户
容量规划不是一个非常有意义的指标。 尽pipe如果你正在运行C#或Java,它确实有一定的影响。 但你没有说你正在运行的操作系统/代码。
并跳跃得到更多:-)
你的腿会累吗? ;)
只有8GB内存…
对于单个web服务器节点来说,这是很多内存。 对于大多数访问升级模式,服务器中的CPU /内存/磁盘几乎没有效率,而且比使用多个低规格机器要昂贵得多。 而且不仅仅是MIP /磁盘MB / s的成本 – 这也分布在多个网卡上。 你会得到更好的容错。
你是否有理由为一个负载平衡器付钱? 很多人认为他们需要一个,但是循环DNS具有许多优点,特别是对于小群集(以及一些缺点 – 但不足以提高平衡)。
没有更多的信息,我不能真正诊断你的问题 – 这可能是你有很多的硬件,但一个非常糟糕的Apacheconfiguration。
你看过应用程序的性能吗? 调整你的Apacheconfiguration/数据库模式/代码可以导致吞吐量的巨大提高。