机器学习优化云虚拟机部署技术解析
在云计算中,负载均衡(即在服务器间均匀分配任务)对提供可靠服务至关重要。它能防止单个服务器过载,避免性能下降。防止服务器过载的最简单方法是限制每台服务器分配的任务数量,但这可能导致资源使用效率低下,因为任务的计算需求差异很大。理想的负载均衡方法应将任务分配到防止过载所需的最少服务器数量上。
在机器学习与系统会议(MLSys)上,我们提出了一种名为FirePlace的新算法来优化任务分配。FirePlace围绕决策树机器学习模型构建,该模型使用基于历史数据的模拟进行训练。
Firecracker虚拟机部署挑战
FirePlace的名称来源于Firecracker虚拟机,该虚拟机被某中心云服务(AWS Lambda)使用。Lambda提供函数即服务,使客户无需自行配置基础设施,并由于按函数执行时长计费而降低成本。
在云计算中,虚拟机通过调节客户代码对服务器操作系统的访问来实现安全执行。传统上,云计算服务可能为服务器上运行的每个应用程序分配一个虚拟机。然而,Firecracker为每个函数分配一个独立的虚拟机。
Firecracker虚拟机安全、轻量,并且可以密集地打包到服务器中。其小尺寸带来了效率优势,但也使其不太可预测:大型程序的资源消耗比单个程序函数的资源消耗更容易估计。优化Firecracker虚拟机的部署需要一种新的负载均衡方法,因此开发了FirePlace。
FirePlace使用决策树模型,该模型以多个服务器资源消耗状态作为输入;为确保模型能在毫秒内做出决策,这些服务器是随机抽样的。模型的输出是将新虚拟机分配给其中一个输入服务器。
模拟训练方法
为了训练模型,使用关于真实Firecracker虚拟机资源消耗的历史数据,表示为时间序列。在训练期间,当模型需要放置新虚拟机时,每个当前已分配的虚拟机都处于其时间序列的特定步骤。运行模拟计算这些虚拟机的未来资源消耗,并在此基础上优化新虚拟机的放置。优化后的放置成为当前输入的训练标签。
在实验中,基线是广泛用于云计算的、效果惊人的"二选一"算法。该算法随机选择两台服务器作为新虚拟机的潜在接收者,然后选择负载较轻的一台。
还将该方法与使用神经网络(长短期记忆网络和时序卷积网络)的方法进行了比较,这些网络经过训练,可以根据虚拟机到该时间点的资源消耗来预测其未来资源消耗。
最后,还将系统与使用强化学习学习虚拟机最优放置的方法进行了比较。学习模型在较小数据集上表现良好,但随着放置虚拟机数量的增加,问题复杂性增加,强化学习模型无法收敛到有竞争力的解决方案。
根据在给定服务器过载固定限制下,服务给定负载所需的服务器数量来评估这些方法;服务器数量越少越好。FirePlace比"二选一"基线算法提高了10%。LSTM和TCN方法准确性太低,缺乏竞争力。
某中心已开始在生产环境中引入FirePlace方法,未来可以在实际环境中验证实验结果。
研究领域
云计算与系统
标签
Lambda服务、Firecracker、虚拟机部署