僵尸工作负载困扰数据中心效率提升
企业通常不会专门招聘"僵尸工作负载猎手",但这样的需求确实存在。每一代新技术出现时,被遗弃的库、程序、服务和存储卷的残留物都会持续消耗资源。理智最终会告诉人们,是时候找出并削减这些资源了。那些没有被关闭的资源,终将让你付出代价。但要找到它们,需要一番搜寻。
如今,云端FinOps工程师、成本优化工程师和库存管理人员正在从事这种"搜寻并清除"的工作。这个新兴的工程师群体利用可观测性、CloudOps和FinOps自动化技术,追踪那些有着多种称呼的资源——孤儿资源、游离资源,没错,还有僵尸资源。他们规划新增容量,并自动化淘汰闲置资产——最理想的情况是在这些资产出现在云账单之前就将其处理掉。
这种对效率的追求从未像现在这样重要。新一轮AI浪潮已将数据中心行业推向全国关注的焦点,基于GPU的生成式AI和智能体AI使公众对资源使用问题的审视更加严格。与此同时,企业团队也正日益重视计算成本问题。
僵尸工作负载为何在混合云和多云环境中持续存在
僵尸工作负载会在多云和本地环境中悄无声息地消耗电力、机架空间和预算。IDCA首席研究官罗杰·斯特鲁克霍夫告诉《数据中心知识》,这些工作负载往往遵循一种共同模式。云端僵尸工作负载通常可以追溯到"停止使用应用程序但从未删除它们的个人或部门",他说。"当内部组织进行整合,或公司被收购,而没有人负责清理未使用的云实例和应用程序时,它们就会出现。"
据斯特鲁克霍夫介绍,IDCA的研究表明,美国云资源使用量中高达13%来自此类僵尸工作负载。
像博通(VMware Aria Cost,原CloudHealth)和亚马逊云科技(如Cost Explorer、Compute Optimizer)这样的FinOps工具供应商——它们经常被聘请协助清理僵尸资源——估计的整体云资源浪费比例更高,通常在25%到30%甚至更多,其中孤立卷和被遗忘的计算实例是常见问题。
这个问题相当顽固,应用架构的持续变化也并未使情况有所改善。
从缩容至零到更进一步
如今应对云端杂乱问题最常见的解决方案,可追溯到著名的Unix终止进程机制。在无服务器架构中,缩容至零配置通过强制运行时限制,使闲置服务停止消耗资源并产生费用。但这也存在权衡取舍。如果误将某个正在运行的服务作为目标关闭,可能导致冷启动,并在重新启动实例时产生不必要的延迟。对于某些流量波动较大的场景而言,这可能会成为一个问题。
FinOps与可观测性
越来越多的云原生和平台增强工具正致力于填补这一空白。谷歌、Flexera、Datadog和IBM等供应商提供的工具,能够将账单与性能指标关联起来,从而识别出那些已产生费用但零使用率的资源;持续索引各类资产以检测闲置状态和中断的父子服务关系;并应用具备自动修复能力的策略,拆除那些潜伏在数据中心环境中而不被察觉的进程。
微服务让僵尸更难以被清除
持续运行的程序问题当然早于云计算时代就已存在。它可以追溯到大型机时代,并在客户端/服务器架构和虚拟机时代一直延续下来。Intellyx分析师、中间件与分布式计算领域资深人士埃里克·纽科默表示,一种行之有效的运营模式曾是"拔掉插头,等着有人喊出来"。
而当云原生微服务日渐普及后,这种情况发生了改变。"云计算带来了'无头'服务,它们在后台运行,为其他服务提供某些数据等功能。许多此类基于微服务的应用程序,可能由多达数百个服务组成,"纽科默说。"如果应用程序停止运行,僵尸服务可能仍在继续运行——但什么也不做。"
云计算率先推动了商用硬件、大规模扩展、积极的复制机制以及Kubernetes等容器编排工具的应用。但这些创新并不能轻易套用到当今的大语言模型和智能体AI上。支撑现代AI的基于GPU的硬件,与为云端分布式计算而构建的商用设施截然不同——而且AI僵尸资源在资金和电力方面的成本代价更高。
纽科默指出,在Linux基金会和云原生计算基金会的支持下,Kubernetes正在不断演进,以更好地支持AI工作负载,而新型僵尸资源也正是在这一领域出现。Kubernetes的相关创新正在向新兴的AI导向型云服务商扩散,但这方面的工作大部分仍处于早期阶段。
新时代:GPU时代的AI提升了利害关系
由于生成式AI和智能体AI具有不断变化的特性,在Kubernetes上支持AI变得更加复杂。目前仍有大量研发工作在进行中。团队经常会遇到长时间运行的任务、管道运行中途崩溃,以及未能清理任务的编排脚本等问题。再加上管理模型权重、数据接入等方面的复杂性,情况就更加棘手。
AI优化平台开发商Akamas的开发者关系工程师、云原生计算基金会大使格拉齐亚诺·卡斯特罗在与《数据中心知识》的邮件交流中表示,这造就了一种截然不同的工作负载特征。
"GPU比CPU核心更昂贵,因此那些在云账单上原本只是舍入误差的低效问题,现在变成了非常真实的数字。一块闲置的GPU绝非小小的浪费,"卡斯特罗说。"大语言模型时代带来的改变是,忽视低效问题所付出的代价,几乎在一夜之间就提升了一个数量级。"
虽然研发阶段出现这种情况在预料之中,但这种低效在生产环境中会成为一个重大问题,由此产生了一种代价高昂的新型僵尸资源:闲置或被遗弃的GPU。
"Kubernetes正在快速向这一领域拓展,生态系统也在明显地构建新的基础机制以迎头赶上,"卡斯特罗说。"但这也持续暴露出该平台最初的设计假设,是基于成本更低、弹性更强的工作负载类型而构建的,而如今它却被要求越来越多地承担与之不同的工作负载。"
Kubernetes正在针对AI进行演进,包括为专用硬件提供动态资源分配能力,以及更智能的批处理任务调度机制,以兼顾许多AI任务所需的拓扑结构和位置局部性要求。
毫不意外,效率监控和僵尸工作负载搜寻如今都依赖于对GPU健康状况和利用率的持续警惕检查。芯片级别的可观测性正在成为顺畅运营的基本要求。
卡斯特罗提到,英伟达的数据中心GPU管理器(DCGM)是一种主流监控工具,有助于评估GPU看起来的繁忙程度。"问题就在于'看起来'这几个字,"他说。"一块GPU在DCGM的利用率数字上可能看起来很繁忙,但实际上它可能只是在等待某个动作,比如尚未到达的数据,或者是同一任务中另一块运行滞后的GPU。"
在这类设置中,网络活动可能成为一个盲区。卡斯特罗补充道,这正是持续推进的OpenTelemetry标准工作意义重大的原因:不同工具必须实现互操作,才能将各类性能信号关联起来。他表示,这些努力正在为AI任务监控创建一套通用的表述体系。
回归基本:策略与责任归属
斯特鲁克霍夫强调,对新型僵尸变体的搜寻不应掩盖基本问题。组织需要制定明确的策略来消除僵尸工作负载。"必须提醒个人用户,在使用完毕后关闭其实例。或者更好的做法是,组织应建立监控机制,提醒管理员注意僵尸工作负载,并设定策略以关闭那些未被使用的资源,"他说。
在实践中,这意味着要对所有使用情况进行全环境范围的例行扫描,并建立一套清理方法——尤其是在内部整合或收购之后。相关工具正在不断改进,工作负载也在不断变化,但这条规则始终不变:你没有关闭的资源,终将让你付出代价。
Q&A
Q1:什么是僵尸工作负载?
A:僵尸工作负载是指企业在云端或数据中心环境中遗留的、不再使用却仍在消耗资源的库、程序、服务或存储卷。它们通常源于个人或部门停止使用应用程序却从未删除,或组织整合、公司收购后无人负责清理。
Q2:僵尸工作负载在云资源使用中占比有多少?
A:据IDCA研究,美国云资源使用量中高达13%来自僵尸工作负载。而部分FinOps工具供应商如博通、亚马逊云科技的估计更高,整体云资源浪费通常在25%到30%甚至更多。
Q3:为什么GPU时代的僵尸工作负载问题更严重?
A:因为GPU比CPU核心昂贵得多,闲置或被遗弃的GPU造成的浪费成本大幅上升。据Akamas工程师格拉齐亚诺·卡斯特罗介绍,大语言模型时代忽视低效问题所付出的代价,几乎在一夜之间提升了一个数量级。
