爱奇艺TFServing负载均衡问题研究及改进实践

通常来说,负载均衡的职责是将网络请求或者其他形式的负载“均摊”到不同的机器上,避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况,让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。

负载均衡可分为软件负载均衡和硬件负载均衡,其中软件负载均衡比较常见,比如Nginx,它会对接受请求进行分配,避免少数服务提供者负载过大而导致的部分请求超时。因此将负载均衡到每个服务提供者上,是非常必要的。

在分布式的微服务系统中,多台服务器同时提供一个服务,并统一到服务配置中心,消费者通过查询服务配置中心,获取服务到地址列表,需要选取其中一台来发起RPC远程调用。如何选择则取决于具体的负载均衡算法,对应于不同的场景选择不尽相同。负载均衡算法的种类有很多种,常见的负载均衡算法包括轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法、Latency-Aware等,需根据具体的应用场景选取对应的算法。

本文将围绕爱奇艺内容理解业务对TFServing服务调用的几个问题,以及应对这些问题的解决思路和方案进行介绍。

01

   背景介绍

爱奇艺内容理解业务大多使用深度学习模型,而模型的在线服务依赖于爱奇艺深度学习推理平台。通常,推理平台使用gRPC作为服务框架,部署在QAE平台上,使用QLB四层(以下简称QLB-4)作为负载均衡方案。理论上一个VIP对应多台后端服务器,通过QLB-4自身的负载均衡策略,可以实现有效的服务器负载均衡访问,但是在大量的深度学习模型在线服务调用过程中,我们发现有以下几类问题:

  1. QLB-4未能实现真正的负载均衡,流量未被均匀分配,存在部分服务器访问量明显过多问题。

  2. 当有新的服务端实例时(包括重启和新增场景),客户端流量不能分配到新的服务端实例上,需要重启客户端,流量才会重新分配到新的服务端实例。

  3. 当客户端数量小于服务端数量时,一定会有部分服务端一直没有接收到客户端请求。

02

   基于QLB-4的TFServing服务调用一

   些问题的实验复现

本次实验将gRPC 客户端和服务端均部署在QAE上,服务端入口网络流量这一指标能直接体现服务端请求接收情况,因此选用服务端入口网络流量作为观测指标。以下实验图x轴为时间轴,y轴为当前时间段网络流量的平均值,具体实验如下&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值