“数据中心”和“博弈”(其英文为game,亦有游戏之意)二词可能会让人联想到《魔兽世界》等多人在线游戏。但数据中心内还上演着另一种博弈,即共享计算机和存储系统对资源的抢占。 甚至数据量堪称最大的谷歌公司的员工也曾进行过这样的博弈。当要求提交某项工作的计算需求时,一些员工为了减少与他人共享的资源数量而夸大资源请求。
有趣的是,还有些员工会减少资源请求,假装自己的任务可以在任何计算机中轻松完成。一旦他们的任务被提交到机器上,就会耗尽机器上所有可用的资源,挤兑其他任务。 这种伎俩看起来有点滑稽,实际上却引发了真正的问题——效率低下。 2018年,全球数据中心耗电量达2050亿千瓦时,差不多和澳大利亚全境的用电量相当,约占全世界总用电量的1%。因服务器未能满负荷运行,大量能源被浪费。一台服务器空闲时消耗的电力是其峰值运行时的50%,因为服务器运行任务时,其固定电力成本会分摊到该任务上。
运行单任务的用户通常只占用20%到30%的服务器资源,因此多个用户必须共享服务器,以提高利用率,进而提升能源效率。共享服务器还可以降低资金、运营和基础设施的成本。毕竟并非人人都有足够的财力来建立属于自己的数据中心。
为了分配共享资源,数据中心部署资源管理系统,根据用户需求和系统自身目标来分配可用的处理器内核、内存容量和网络资源。乍一看,这项任务应当是简单明了的,因为用户往往会有互补需求。但事实并非如此。共享造成了用户之间的竞争,就如谷歌投机取巧的员工那样,这会扭曲资源的使用。因此,我们开展了一系列项目,采用博弈论,即描述理性决策者之间策略互动的数学模型,来管理利己用户之间的资源分配,实现数据中心效率最大化。采用博弈论后,情况变得大为不同。
帮助一群理性而利己的用户有效共享资源不是大数据时代的产物。几十年来,经济学家一直在这样做。在经济学中,市场机制根据供求来决定资源的价格。实际上,亚马逊EC2和微软Azure等公共数据中心中都部署了此类机制。在那里,真实的货币转移作为一种工具,使用户动机(性能)与提供商目标(效率)趋于一致。
然而,很多情况下,货币交换并不起作用。举一个简单的例子。假设你在最好朋友的婚礼上得到一张歌剧票,你决定把票赠送给最喜欢这场歌剧的人。因此你要进行所谓的第二价格密封拍卖:你让朋友出价,规定赢家支付第二高的竞价。数学上已经证明,在这场拍卖中,你的朋友没有动机谎报对这张歌剧票的估价。如果你不想要钱或不让朋友付给你钱,你的选择就会变得非常有限。
如果你询问朋友想看歌剧的意愿,他们定会夸大想要歌剧票的愿望。歌剧票只是一个简单的例子,但在很多地方,比如谷歌私人数据中心或学术计算机集群,金钱要么不能转手,要么不该转手,因此不能以此来决定归谁所有。博弈论恰好为此类问题提供了实用的解决方案,并已实用于计算机网络和计算机系统。我们可以从这两个领域获得灵感,但也不必解决其局限性。为避免计算机网络拥塞,人们在设计管理机制方面做了很多工作,以此来管理自利和不协调的路由器。
但是这些模型只考虑了对单个资源——网络带宽——的争抢;而在数据中心计算机集群和服务器中,要争夺的有各种各样的资源。在计算机系统中,人们对考虑多种资源分配机制的兴趣越来越浓厚,其中非常著名的是主体资源公平机制。然而,这类工作仅限于性能模型以及处理器与内存的比率,并不总能反映数据中心的情况。为提出适用于数据中心的博弈论模型,我们深入研究硬件架构的细节,从最小层次——晶体管开始。
长期以来,晶体管功耗随体积缩小而降低,部分原因在于工作电压降低。然而,20世纪初,这种被称为登纳德缩放比例的定律被打破。其结果是,在固定功率预算内,处理器的速度不能再按照我们习惯的速度增长。临时解决方案是在同一芯片内安置多个处理器内核,这样仍可以经济地冷却大量的晶体管。然而,你很快发现,长时间全速开启运行所有内核会熔化芯片。
2012年,计算机架构师提出了一种叫作“计算冲刺”(computational sprinting)的变通方法。其概念是,处理器内核在较短的时间隔内安全地突破功率预算,称为冲刺。一次冲刺之后,处理器必须在下一次冲刺之前冷却下来;否则芯片就会损毁。如果处理得当,冲刺可使系统更快速地响应工作负载的变化。冲刺计算最初针对的是智能手机等移动设备的处理器,这些处理器必须限制功耗,节省电量,同时避免灼伤用户。但冲刺很快便应用于数据中心,帮助处理瞬时激增的计算需求。
这便是问题所在。假设自私用户启用可实现冲刺的服务器,这些服务器在数据中心中共享一个电源。用户可以通过冲刺来提高处理器的计算能力,但若众多处理器同时冲刺,电源负荷将会激增,断路器将跳闸。在系统恢复时,迫使不间断电源(UPS)中的电池提供电力。电力应急状况出现后,电池需要充电,在此期间连接此电源的所有服务器都必须按额定功率运行,不允许冲刺。
这种情形是典型“公地悲剧”的一个版本,英国经济学家威廉•福斯特•罗伊德 (William Forster Lloyd)在1833年的一篇文章中首次提出这一概念。他描述了如下情况:假设牧民共享一片牧牛地。如果一位牧民的牧牛超过规定数量,他就可以获得边际收益。但如果许多牧民效仿,过度放牧就会破坏土地,无人能独善其身。
我们与当时杜克大学的博士生樊淞春(Songchun Fan,音)将冲刺策略作为公地悲剧来研究。我们构建了一个关注两个主要物理约束的系统模型。首先,对于服务器处理器,在芯片散热时,要求处理器等待,并限制下一次冲刺操作。
其次,对于服务器集群,如果断路器跳闸,在不间断电源(UPS)电池充电期间,所有服务器处理器都必须等待。我们设计了一个冲刺博弈游戏,用户在每一回合中可能处于活跃状态、冲刺后的冷却状态或紧急断电后的恢复状态。
在每个回合,或者每一轮游戏中,用户唯一的决定是处理器处于活跃状态时是否进行冲刺。用户希望优化冲刺的收益,比如提高吞吐量或减少执行时间。注意,这些收益会随着冲刺的时间而变化。例如,需求越高,冲刺收益越大。
举一个简单的例子。假如你正处于第5回合游戏,冲刺将为你带来10个单位的收益。然而,你必须让处理器冷却几轮才能再次冲刺。如果等到第6回合再冲刺,你可以获得20个单位的收益。或者你打算不在第5回合冲刺,而保留到未来某一回合,但所有其他用户都决定在第5回合冲刺,于是出现了电力应急情况,导致你无法在后面数回合中冲刺。更糟糕的是,你的收益降低了。
所有用户的决策都必须基于他们的获益和其他用户的冲刺策略。当少数几个用户博弈时或许很有趣,但当竞争对手的数量增长到数据中心规模时,决策就变得非常棘手。幸好,我们发现了在大型系统中优化每个用户策略的方法,即所谓的平均场博弈分析。这一方法将用户行为描述为一个整体,避免了审视每个竞争对手策略的复杂性。
这种统计方法的关键是假设任何单个用户的动作都不会明显改变平均系统行为。基于这一假设,我们可估计所有用户对任意指定用户造成的影响。这类似于千百万个上班族试图优化日常出行的方法。比如有一个上班族名叫爱丽丝,她不可能对每个路人的出行方式进行推断,但她可以将所有上班族作为一个群体来形成某种预测,比如某一天他们希望到达的时间,以及他们的出行计划对交通拥堵的影响。平均场博弈分析能够使我们找到冲刺游戏的“平均场平衡”。
用户优化自己对群体的响应,在平衡状态下,偏离用户对群体的最佳响应不会给用户带来益处。在交通领域的类比中,爱丽丝据其对通勤群体平均行为的了解来优化自己的通勤。如果优化后的计划未能达到预期交通模式,她会校正预测并重新考虑计划。随着每位上班族几天优化一次,交通趋于某种重复的模式,上班族的独立行为便会产生一种整体的平衡。
根据平均场平衡,我们制定了冲刺博弈游戏的最优策略,可归结如下:当性能增益超过某个阈值(具体视用户而定)时,用户应冲刺。可以通过数据中心的工作负载及其物理特性来计算这一阈值。
在平均场平衡状态下,每位用户都以其最优阈值运行,系统可获得诸多收益。首先,数据中心的电源可以实现分布式管理,用户无须向中央管理器请求冲刺许可,可自行实施策略。这种独立使电源控制更加灵敏、节能。用户可以在几微秒的时间内调节处理器功耗,而如果他们必须等待几十毫秒才能获得许可并通过数据中心,那么这种效果将难以实现。其次,平衡可以完成更多计算工作,用户可以根据自己的工作负载需求适时优化冲刺策略。最后,用户的策略变得简单明了——当增益超过阈值时进行冲刺。这非常易于实现,且便于执行。
我们在过去5年里开发了一系列数据中心管理系统,冲刺电源管理项目仅仅是其中之一。在每一个系统中,我们都使用硬件架构和系统的关键细节来规划博弈。当参与者表现出自私的行为时,建成的实用管理机制也可保障系统能够稳定运行。我们相信,这种保障会鼓励参与共享系统,并为节能和可扩展的数据中心奠定坚实基础。
尽管我们已经设法解决服务器多处理器、服务器机架和服务器集群级别的资源分配问题,但是将它们用于大型数据中心仍将需要更多的工作。首先,必须能够生成数据中心的性能配置文件。数据中心必须部署监视硬件运行的必要设施、评估性能效果并推算资源参数。
此类系统的多数博弈论解决方案都要离线分析阶段。而更积极一点的方法,可以从一些先验知识开始建造在线机制,然后在执行过程中随着特征变得更清晰,不断更新其参数。甚至可能通过强化学习或其他形式的人工智能来在线改进机制的博弈规则。另外,在数据中心,用户可能随时到达和离开系统;任务可能会在不同阶段进入和退出;服务器可能会发生故障并重新启动。
所有这些事件都需要重新分配资源,但是资源的重新分配可能会破坏整个系统的计算,要求数据分流,从而耗尽资源。在保持每个人公平博弈的同时,应对所有这些变化都需要进行更多的工作,但我们相信博弈论将发挥其应有的作用。
全部0条评论
快来发表一下你的评论吧 !