信道容量不足1GBit

有一个caching服务器(Varnish):它根据请求从Amazon S3接收数据,将其保存一段时间并提供给客户端。 我们遇到了1GBit的通道容量不足的问题。 在4小时内的高峰负载完全扼杀通道。 服务器性能已经足够。 每天大约有4.5TB的数据传输。 每月累计超过100TB。

首先想到的只是添加一个1GBit的端口,并且平安地hibernate,直到2GBit是不够的(可能发生得很快),或者一个服务器无法处理它。

然后我们只需要添加新的caching服务器。 但是现在我们需要一个负载均衡器,它将在同一个URL上发送请求,并始终在一个服务器上(以避免同一个caching对象的多个副本)。

以下是问题:

  1. 平衡器是否需要一个等于caching服务器所有频带之和的频带? 如果平衡器中没有端口,我们该怎么办? 我们应该添加更多的平衡器或通过循环DNS解决问题?
  2. 这些问题的标准方法是什么?
  3. 任何人都可以build议托pipe公司,这可以解决这个问题? 我们对美国和欧洲市场感兴趣。

平衡器是否需要一个等于caching服务器所有频带之和的频带? 如果平衡器中没有端口,我们该怎么办?

是。 添加更大的pipe道或使用CDN地理负载平衡。

我们应该添加更多的平衡器或通过循环DNS解决问题?

这实际上是相同的解决scheme。 您添加更多的平衡器,并将其插入循环DNS。 或者如我之前所说,更明智的select是使用地理负载平衡。

这些问题的标准方法是什么?

使用一个DNS来回答最接近用户的服务器,并把这样的服务器放到世界各地。 这还有其他一些优势,例如为用户提供低延迟的体验。

任何人都可以build议托pipe公司,这可以解决这个问题? 我们对美国和欧洲市场感兴趣。

对于地理DNS负载平衡,你应该谷歌。 你将需要更高端的DNS服务,但你应该能够find它。 在欧洲,你一定要看看OVH,它有一个非常大的networking,可以为你提供多吉比特的带宽。 对于美国,我不知道。

是的,负载均衡器应该能够处理来自/到所有服务器的所有累计stream量。 因此,我build议使用负载均衡器,将一个10Gb上行链路和其他1Gb端口连接到多个高速caching服务器。 硬件负载平衡器可以更有效地处理如此巨大的stream量。

假设负载均衡器能够毫无问题地处理所有stream量,那么您的限制将是10Gb。

负载平衡器还可以在将请求指向任何提供更高可用性的服务器之前检查服务器的运行状况。

必须select合适的负载均衡algorithm,以避免caching重复,并向正确的用户提供正确的数据。