有10万件大小不同的商品,要平均放到1万个箱子里,应该如何分配?对于人类来说,这是一个可解的问题。
如果问题更难一点:10万件商品随时变大变小,而且有“矿泉水不能压在薯片上”等大量限制条件,如何在几秒钟内给出最均衡的装箱方案?
阿里巴巴的工程师每天都会面对这类问题。无数应用对服务器的需求每时每刻都在变化,如何才能把这些应用均衡地分配到数万台不同规格的机器上。为了解放人类工程师并能够更好地分配计算资源,11月6日,阿里巴巴计算资源AI分配官“达灵”正式上任,准备迎接天猫“双11”的挑战。
实习期间,达灵将数据中心资源分配率拉升到了90%以上,在部分业务中节省了一半服务器,并且可以两秒钟锁定异常机器,命中率94%。
节省一半服务器
打开手机淘宝,首页可以看到“有好货”、“猜你喜欢”等常用功能模块。此前,人工为每一个模块分配服务器数量并监督运行情况。对于工程师来说,工作量和难度挑战巨大。
“伴随‘双11’规模的逐年暴涨,这样的工作已经不适合人来做了。” 阿里巴巴资深搜索研发专家郑南说。为此,阿里巴巴搜索团队对“达灵”进行了大量训练和工程化,在实习期“达灵”就完全替代了人工,在推荐平台智能调度方面将资源分配率提高了一倍,这相当于节省了一半的机器。
“这套算法能够快速给出最优的部署方案,并且根据访问量不断搬运应用和数据,确保没有一台机器偷懒”。郑南说,我们要做的就是不断用数据喂养她,提供表格数据大小、访问量以及目前的部署方案等信息,剩下的就是喝着茶看她的表演。“她甚至可以在线上克隆一个真实的服务,自己进行压力测试,以判断方案是否最优。”
两秒隔离异常机器
阿里巴巴遍布全球的数据中心如果有一台机器发生异常,未被及时处理,会带来什么损失?天猫“双11”期间,可能会使近百万用户下单失败。
为了避免这种情况,每年“双11”都会有大量的工程师紧盯着集群的健康情况。如果发现异常机器,马上进行手工隔离甚至直接下线,俗称“杀机器”。
但从出现异常、被发现到处理完成,整个过程有时长达数分钟。阿里巴巴调度系统资深专家丁宇说,“之前已经做到了人的极限。去年开始探索AI,把时间、负载、服务状态等不确定因素通过数据算法关联,最终找到了解法”。