Google是怎么做负载均衡器的

译者 任美芒

在近日举办的第十三届网络系统设计与实现USENIX研讨会(NSDI ‘16)上, 来自谷歌,加州大学洛杉矶分校,SpaceX公司的工程师们分享了Maglev:快速、可靠的软件网络负载均衡器。Maglev是谷歌的网络负载均衡器。

不同于专用的硬件负载均衡设备,Maglev是运行在商用服务器上的软件解决方案。Maglev运行在普通的服务器上,在需求增长的时候通过将更多的服务器添加进来,为流量高峰提供足够的容量,而不是提前获取特定硬件。Maglev是谷歌为自己的数据中心研发的,并已于2008开始用于生产环境。

谷歌服务器以集群的方式运行在世界各地的数据中心。每个集群都有一个负载均衡器构成多设备放置在路由器和提供服务的服务器之间。专用负载均衡器通常以active-passive模式部署提供1+1冗余,使其中一个闲置,造成容量浪费。而且他们局限于他们的容量,很难或不可能重构。谷歌已经决定使用一种配置提供N + 1冗余,为他们的软件和商用服务器提供了更好的可扩展性和灵活性,如下图所示。

0?wx_fmt=png

在性能方面,单节点Maglev服务器可以“用很小的数据包使10Gbps链接达到饱和。Maglev也包含了一致性哈希算法和连接跟踪功能,以减少面向连接协议的突发故障和失败的负面影响。”Maglev被Google的云计算平台使用,安装后不需要预热5秒内就能应付每秒100万次请求。谷歌的性能基准测试中,Maglev实例运行在一个8核CPU下,网络吞吐率上限为12M PPS(数据包每秒)。如果Maglev不使用Linux内核网络堆栈则速度会慢下来,吞吐率小于4M PPS。

演讲文中详细介绍了如何通过Maglev处理请求,如何处理虚拟IP地址以及该请求是如何基于等价路由(ECMP)算法,哈希法和其他算法定向到一个服务端点的。

更多精彩内容,扫码关注“细说云计算”(微信号:CloudNote)。

0?wx_fmt=jpeg

扫一扫,聊聊云计算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值