大数跨境
0
0

SOSP'25 全解读之2/13:数据中心的极致资源利用

SOSP'25 全解读之2/13:数据中心的极致资源利用 存储前沿技术评论
2025-10-17
0
导读:在上一期“操作系统文艺复兴”中,我们见证了系统软件之“魂”如何在AI与新硬件的浪潮下,迸发出颠覆性的创造力。今天,我们将目光从抽象的软件灵魂,转向承载这一切的物理“躯体”——庞大而复杂的数据中心。

前言:从操作系统之魂,到数据中心之躯

在上一期“操作系统文艺复兴”中,我们见证了系统软件之“魂”如何在AI与新硬件的浪潮下,迸发出颠覆性的创造力。今天,我们将目光从抽象的软件灵魂,转向承载这一切的物理“躯体”——庞大而复杂的数据中心。

数据中心像一盒无穷变化的“乐高积木”,CPU、内存、网卡、SSD、加速器……这些昂贵的组件正被从服务器主板上“解放”出来,汇聚成一个个独立的资源池,按需组合、弹性伸缩。这,就是“资源解耦与池化”的宏大叙事,是当前缓解算力瓶颈与成本压力的一条关键路径。

但这幅蓝图的实现,远非插拔积木般简单。如何在毫秒之间,为成千上万的应用动态分配恰到好处的资源?当缓存与带宽相互纠缠,当虚拟化遇上分层内存,当高性能计算渴求云的弹性……一道道世界级的工程难题横亘眼前。本期的五篇佳作,展现了来自微软、英伟达、哥伦比亚、耶鲁、港中文等团队在资源管理上的系统性方案与工程取舍。他们致力重构数据中心的资源管理范式。本期,我们一起来了解这场关于性能、效率与成本的极致平衡。


Paper 7: Oasis —— CXL内存池作为中台,多机共享PCIe设备

在云计算的成本构成中,网卡(NIC)、固态硬盘(SSD)等PCIe设备占据了高达20%-40%的份额。然而,这些昂贵的“黄金”却长期处于沉睡状态。微软Azure的生产数据显示,即便在流量高峰,网卡的P99.99带宽利用率竟不足20%。这种因资源搁浅、过度预留导致的巨大浪费,是所有云厂商心中挥之不去的痛。

传统的PCIe设备池化方案,如图形处理器虚拟化或PCIe交换机,无一不依赖昂贵、僵化的专用硬件,难以大规模普及。但现在,一个意想不到的“破局者”出现了——CXL(Compute Express Link)。这个为解决内存墙问题而生的技术,正迅速成为数据中心的热门技术。Oasis的研究者们敏锐地捕捉到了一个颠覆性的机会:我们能否复用已经济上合理部署的 CXL 共享内存池,作为跨主机 I/O 缓冲与控制信令的共享内存数据面,以近零边际成本实现 PCIe 设备池化与共享?

Oasis:妙用CXL共享内存池实现软件定义的I/O高速公路

Oasis的核心思想,就是构建一个软件层,将物理上分散的PCIe设备,逻辑上汇聚成一个可供所有主机共享的资源池。其架构精巧地分为两层:

  • 控制平面:一个逻辑集中的“Pod分配器”,如同交通指挥中心,负责设备分配、负载均衡和故障恢复等决策,但它不参与具体的数据传输,保证了决策的全局性和数据路径的轻量化。
  • 数据平面:这是Oasis的性能引擎。它设计了类似Virtio 风格环队列的通用数据通路,通过前端驱动(运行于应用主机)和后端驱动(运行于设备主机)的协作,让NIC、SSD等不同设备能以“插件”形式接入。所有I/O数据和控制信令,都通过CXL共享内存这条“高速公路”进行交换。

技术核心:驯服非一致性共享内存的“猛兽”

Oasis面临的最大挑战是现有 CXL 2.0 池不提供跨主机一致性,CXL 3.0 才引入可选的跨主机一致性且硬件昂贵,Oasis 明确不依赖跨主机一致性。若直接在非一致共享内存上通信,CPU缓存中的陈旧数据会引发灾难性的性能问题。简单粗暴地频繁刷新缓存,又会带来巨大的CPU开销和延迟。

Oasis团队为此设计了一种极其创新的高性能消息通道。它通过在环形缓冲区中巧妙地插入缓存行失效指令,既能“欺骗”并“解锁”CPU强大的预取机制来隐藏延迟,又能精准地避免读取到陈旧数据,最大化了数据局部性。微基准测试显示,相比朴素实现,该消息通道的吞吐量提升了惊人的29倍,为整个系统的高性能奠定了坚实基础。

小结:Oasis作为首个基于CXL内存池的纯软件PCIe设备池化系统,其概念创新性毋庸置疑。Oasis将CXL的潜力从内存扩展延伸至通用设备互联,为未来数据中心的集群甚至联邦资源管理提供了新的视角。

本文的全面导读见【论文导读-Oasis-SOSP'25】:妙用CXL内存池实现跨主机PCIe设备共享


Paper 8: Spirit —— 当缓存遇上带宽,用经济学解开资源分配的“电车难题”

本地缓存(Local Cache)和网络带宽(Network Bandwidth)这两种资源并非独立,而是存在深刻的相互依赖:更大的缓存能减少远程访问,从而节省带宽;而更宽的带宽则能容忍更低的缓存命中率。不同应用对此的偏好天差地别:流式计算是带宽“饕餮”,而键值存储则极度依赖缓存。传统的DRF(主导资源公平性)等算法,因其假设资源相互独立,在此场景下完全失效,导致静态、次优的资源划分。

随着内存池化成为主流,一个新的“电车难题”(伦理学中的一个经典假设困境,车辆失控的时候能否主动伤害无辜者来拯救更多人?)摆在了系统设计者面前。在多租户环境下,如何公平且高效地分配本地缓存和网络带宽?

Spirit的智慧:引入“瓦尔拉斯拍卖”机制

面对这个难题,Spirit的作者们跳出了传统的计算机思维,从微观经济学中借来了百年智慧——竞争性均衡(CEEI) 与 瓦尔拉斯拍卖(Walrasian Auction)(注:两者都强调“价格机制”在分配中的作用,但CEEI更强调每个人起点平等,瓦尔拉斯拍卖更偏向市场自发调节直到供需平衡)。

想象一个资源市场:

  • 买家:每个运行的应用。
  • 预算:所有应用被赋予完全相同的初始虚拟“信用点”。
  • 商品:系统的总缓存和总带宽。
  • 拍卖师(系统):根据供需关系,动态调整商品的价格。

拍卖流程如下:在每一轮,每个应用根据自身对性能的渴求,用预算去“购买”它认为性价比最高的缓存与带宽组合。带宽敏感的应用会重仓带宽,缓存敏感的应用则会抢购缓存。拍卖师则根据总需求调整价格:供不应求的资源涨价,供过于求的则降价。经过多轮迭代,市场最终达到一个“出清”的均衡点,此刻的资源分配方案便是帕累托最优解。

这个机制的精妙之处在于,它用“价格”这一无形之手,将复杂的全局优化问题,分解为每个应用追求自身利益最大化的局部问题,从而优雅地解决了资源间的相互依赖性。

从理论到实践:一个对应用透明的系统

理论虽美,但如何知道每个应用对不同资源组合的性能响应?让用户自己申报显然不现实。Spirit通过一个聪明的系统设计解决了这个问题:它利用Intel PEBS等硬件辅助技术,在运行时低开销地分析应用的内存访问行为,动态估算出其性能-资源依赖曲线。这使得整个分配过程对应用完全透明,且能防止“谎报需求”的策略性行为。

实验验证:接近理论最优的公平与效率

在与多种基线算法的对比中,Spirit全面胜出:

  • 性能提升显著:将带宽敏感型应用的吞- 吐量提升了高达21.6%,并将缓存敏感型应用的P99延迟降低了6.1%-16.8%
  • 接近理想:更重要的是,Spirit的性能表现非常接近通过暴力搜索得到的理论最优解(Ideal),证明了其分配策略的高效性。
  • 可证的公平性:该机制在理论上保证了共享激励、无嫉妒性和帕累托最优。

Spirit的贡献在于,它为相互依赖的资源分配问题,找到了一个跨界的、理论与实践完美结合的优雅解法。它告诉我们,当系统变得日益复杂,跳出本领域的思维框架,或许能发现通往未来的有效方案。


Paper 9: Mage —— 破解远程内存扩展性魔咒,将瓶颈还给硬件

远程内存(Far Memory)技术,通过网络连接海量内存池,看似为数据密集型应用提供了无限空间。然而一个致命的悖论长期存在:越是需要海量内存的高度并行应用,在使用远程内存时性能反而越差,甚至崩溃。

如上图所示,应用访问缺页 → 进入 fault-in(红色)把页从远内存拉回本地;若本地没空位 → 立刻触发 eviction(蓝色)把冷页写回远内存腾位。两条路径被强耦合在一次缺页处理中,跨 RDMA 的读/写、TLB 失效与页表更新叠加,成为整套远内存系统的关键瓶颈。

  1. 缺页触发(fault-in 起点)

    • 应用访问不在本地的页 → 触发缺页中断。

    • Page fault handler 先在本地 Alloc free pages)。

    • 若有空位:通过 RDMA Read)把页从远内存读回,更新 PRA 热度(),“完成一次提升(Promotion)”。

  2. 本地无空位 → 牵连 eviction(耦合点)

    • fault-in 为了“给新页让座”,必须先 挑出受害页(PRA 选冷页)。

    • 这直接把蓝色 eviction 流水线拉进同一次缺页处理里:
      a. TLB flush / shootdown):确保迁移期间无人再访问该页;
      b. 远端内存分配):向远内存分配器申请目的位置;
      c. RDMA Write):把受害页从本地写到远内存;
      d. 释放本地帧:把页框归还到 free list。

  3. 回到 fault-in 完成搬入

    • 本地终于腾出空位 → 执行 RDMA Read 把目标页拉回;

    • 完成页表更新、TLB 使能与 PRA(页面引用) 记

    • 整个缺页被“读远端 + 写远端 + 管理操作”串成一条长尾路径。

为什么会慢(瓶颈归因)

  • 路径耦合放大延迟:一次缺页常常隐式包含一次逐出,导致“先写远端、再读远端”的组合成本。

  • RDMA 往返昂贵:在高内存压力下,RDMA Write/Read 成倍增加,远端分配器交互也多,通信延迟主导。

  • 一致性与内核开销TLB 失效、页表更新、PRA 维护 都在关键路径上,进一步拉长尾延迟。

  • 页面来回“震荡”:热度评估不准或压力波动,会让页面在本地/远端之间循环迁移(thrashing),形成恶性放大。


简单来说:缺页本应是“读一次”,但在远内存体系里,常被迫变成“写一次 + 读一次 + 一堆管理动作”。这就是为什么图中 fault-in 和 eviction 的耦合,以及 RDMA 交互,成为关键性能瓶颈。

EPFL与耶鲁大学的研究者精准地识别到问题的根源,当并发线程数激增时,处理缺页(从远端取回数据)和页面驱逐(将冷数据写出到远端)这两条路径,会在操作系统内核中发生灾难性的拥堵,这源于传统内存资源管理的三大“原罪”:

  1. TLB一致性:页面驱逐时,需要通过跨核中断(IPI)来使所有CPU核的TLB失效。高并发下,“IPI风暴”导致单次TLB刷新延迟飙升33倍。
  2. 页面统计:应用线程和驱逐线程激烈争抢同一个全局LRU锁,来决定淘汰哪些页面,导致严重瓶颈。
  3. 页面循环:无论是本地还是远程的内存分配器,其内部的全局锁在高并发下都成为性能瓶颈。

当后台驱逐跟不上时,前台应用线程被迫“同步驱逐”,将三大开销全部引入关键路径,造成性能雪崩。

Mage的设计哲学:三大原则重塑可扩展性

Mage认为对现有机制“修修补补”无法根治多核/远内存下的协调与争用瓶颈,因此从架构层面提出三项核心原则:

  1. 始终异步解耦(Always-asynchronous Decoupling)—— 将驱逐路径(EP)从应用缺页的关键路径(FP)中剥离,FP尽量不执行同步驱逐或耗时的TLB/页表更新操作;耗时的驱逐、TLB shootdown 与 RDMA 由专用的后台 EP 线程承担,FP 在大多数情况下只需快速返回或短时等待,从而保证应用延迟可控(极端资源紧张时 FP 可能短暂阻塞)。

  2. 跨批次流水线执行(Cross-batch Pipelined Execution)—— EP 以批次化和流水线化方式执行驱逐,把 TLB 失效、互核通信与远端 I/O 请求聚合并跨批次重叠,以摊薄 IPI/TLB/RDMA 等固定开销;论文实现中通过大批量(实验上 128–256 页/批)和跨批次重叠显著提升驱逐吞吐并隐藏远端延迟。

  3. 优先可扩展性、规避协调(Scalability-first, Coordination-avoidance)—— 以降低锁争用为第一目标:用分区/分片的 LRU、分片锁、每核缓存与并发队列等低争用数据结构代替全局集中结构,宁可牺牲部分全局精确度也要换取并行扩展性;同时用哈希分配、轮询扫描和动态调节等手段缓解因精度下降带来的副作用。

这些原则是有意识的权衡:通过把低延迟要求与高吞吐驱逐解耦、批量化处理和减少全局协调,Mage 在远内存场景下实现了显著的延迟与吞吐改进,但会以偶发的全局驱逐不精确为代价,需要额外的缓解与调优措施。

终极成果:将瓶颈还给硬件

Mage面对极端内存压力,其性能损失仅30%,而现有系统早已崩溃。对于Memcached,它将P99尾延迟降低了94.5%

Mage成功地将系统瓶颈从低效的软件协调,转移到了物理硬件——网络带宽上。它能轻松饱和200Gbps的RDMA网卡,达到近94%的利用率。这意味着,Mage的性能天花板,就是硬件的天花板。只要硬件升级,性能就能继续线性增长。


Paper 10 (NVIDIA): 为HPC/AI插上翅膀 —— 设备辅助的RDMA实时迁移

动机:HPC和AI workload越来越多地部署在云环境中。HPC/AI应用依赖RDMA设备直通(passthrough)来获取极致性能,但这却破坏了虚拟化,使其无法进行虚拟机实时迁移(Live Migration)。这意味着云主机无法进行无感的硬件维护或故障恢复,这对于动辄运行数周的AI训练任务是不可接受的。

不宕机迁移的难点RDMA设备状态复杂且对性能敏感,传统软件方法需要全局协调或中断网络连接,代价高昂且不现实。此外,迁移过程中必须保持本地与远程连接的一致性,并处理大量在途消息,同时避免修改客户机系统。

核心思想及执行流程:NVIDIA提出设备辅助(Device-Assisted) 的范式——让硬件从一个被动的“行李”,转变为一个主动参与、协助迁移的“智能伙伴”。具体而言,通过硬件辅助机制,在RDMA设备中内嵌支持迁移的功能,保留标识符和连接状态,使迁移过程对网络透明。hypervisor利用标准化接口控制设备静默、保存/恢复状态,并协同多设备一致迁移,最终实现快速、无感知的Live Migration。

整个迁移过程涉及多个软硬件组件协同工作,以实现 RDMA 设备(如 NVIDIA ConnectX-7)在虚拟机实时迁移中的状态保存与恢复。此过程无需 Guest OS 参与,具有高性能、透明性和良好的兼容性。

  • 准备迁移阶段(Preparation Phase)

Hypervisor 通知 Guest 即将开始迁移,并启动 dirty page tracking。

查询源端设备信息(QueryTag),确保目标端具备兼容性。

获取 VF 的 ICM (Internal/Integrated Context Memory,用于存放 steering/queue 等上下文) 布局结构,为目标端预分配内存做准备。

  • 暂停 VF 并生成快照阶段(Suspend & Snapshot Generation)

执行 Suspend-Active 命令:断开 VF 与嵌入式交换机连接,停止发送队列,阻塞新请求,等待已有数据处理完成。

执行 Suspend-Passive 命令:清空缓存,使 ICM 快照达到一致状态,并剔除可重建或已过时的状态信息。

使用 ImageBlock-Save 提取精简后的 VF 状态镜像至宿主机内存。

  • 迁移数据到目标节点阶段(Migration Data Transfer)

将 VF 快照通过标准虚拟机迁移通道传输到目标主机。

若启用预拷贝机制,则在此阶段同步脏页数据。

在目标端验证设备兼容性(比对 QueryTag),不匹配则终止迁移。

  • 在目标端还原 VF 阶段(Restore VF on Target)

使用 ImageBlock-Load 将快照加载到目标 VF 的 ICM 中,并重新绑定资源引用。

执行 Resume-Passive 允许 ICM 修改和 PCIe 请求处理。

执行 Resume-Active 恢复正常运行:重新连接嵌入式交换机、恢复发送队列、触发 doorbell、重置定时器和 QoS 信用。

  • 优化与清理阶段(Optimization and Cleanup)

利用 ConnectX 流量整形能力限制迁移期间的内存污染率(dirty rate throttling)。

清理残留资源,更新路由规则,释放旧有资源,完成整体迁移流程。

关键技术

  1. 通用Hypervisor API:设计了一套硬件无关的API,作为Hypervisor与设备驱动之间的“标准对话语言”,封装了复杂的硬件逻辑。
  2. 多设备一致性静默:提出了一种新颖的两阶段挂起/恢复协议,确保GPU和RDMA网卡这类直接通信的设备,能在某个精确时刻“一致性地”暂停,安全地捕获整个系统的关联状态。
  3. 生产级实现:该方案已在NVIDIA ConnectX-7网卡上完整实现,达到了商用(GA)水平。

效果:即便虚拟机配置了10万个连接,迁移停机时间依然控制在亚秒级,且迁移后性能零损耗,网络带宽和延迟完全恢复至迁移前水平。这项工作打通了高性能计算与现代云基础架构之间的“最后一公里”,让承载最关键计算任务的虚拟机,也能享受到云平台带来的高可用性与灵活性。


Paper 11 (Demeter): 破解分层内存管理僵局 —— 客户机委派

难题:在“DRAM + CXL内存”的分层内存虚拟化环境中,由Hypervisor来管理数据冷热,会因高昂的TLB刷新开销和无法利用硬件特性(如PEBS)而导致性能低下。

上图展示hypervisor-based(基于虚拟机监控器/宿主)实现的分层内存管理(Tiered Memory Management, TMM)。

流程:

  • 2D 地址翻译:Guest 用 GPT 做 gVA→gPA,Host 用 EPT 做 gPA→hPA;宿主只能看见 gPA↔hPA,看不见 gVA。

  • 访问跟踪:清/读 PTE 的 A/D 位、或用缺页;也可扫描 GPT/EPT;由 hypervisor 统一执行。

  • 热冷判定:按访问度打分排序(LRU/采样等),决定留在 DRAM 的 hot 与迁往 PMEM/CXL 的 cold

  • 迁移/置换:发起页迁移并更新 GPT/EPT(把部分 gPA 映到慢层)。

  • 清位与 TLB:为下一轮跟踪清 A/D 位→触发(常为全局)EPT/TLB invalidation。

  • 循环:监控→判定→迁移,周而复始。

主要问题:

  • 重度依赖清 A/D 位 → 大量 TLB/EPT flush,内存访问被阻塞,代价高。

  • 不可见 gVA:只能粗粒度失效,无法精细到单地址;guest 内可做到更细。

  • 难用硬件高精度采样(PEBS):跨虚拟化边界获取/利用成本高。

  • 集中式开销与可扩展性差:扫描页表、排序、LRU 等随 VM 数量放大。

  • 丢失 gVA 局部性:仅在 gPA/hPA 层操作易打乱程序语义局部性,致 thrashing/误迁移。

  • 迁移引发锁争用与复杂资源治理:易影响多租户 QoS。

  • 对硬件特性利用受限:如 PMEM 模式、PEBS 优化等在 hypervisor 层受约束。

Hypervisor-based TMM 因 看不见 gVA + 必须清 A/D 位(导致大量 EPT/TLB flush)+ 难用 PEBS,在性能、规模化与决策质量上都吃亏。

核心思想:Demeter提出了“客户机委派”(Guest Delegation)范式——与其让Hypervisor吃力不讨好,不如将专业的数据管理工作,授权给最了解应用行为的客户机操作系统(Guest OS)自己。

Demeter 执行流程:

  1. 初始化与部署

    • 在每个来宾(guest)内运行 Demeter 组件,且与虚拟机管理程序(hypervisor)通过双气球(double‑balloon)接口协同,保证云环境下的弹性内存配给。
  2. 低开销采样(PEBS)

    • 在 guest 内利用 EPT‑friendly 的 PEBS(Precise Event‑Based Sampling)对内存访问进行精确采样,记录访问地址与频率,避免频繁产生 VM‑exit 或高成本的 hypervisor 访问跟踪。
  3. 地址映射与范围划分

    • 将采样到的访问映射回 guest 虚拟地址空间,并按连续区间(range)对地址空间进行划分,保持数据的空间局部性信息,而不是以单页为粒度单独处理。
  4. 热度估计与分类

    • 对每个地址范围累积访问统计,基于阈值将范围分类为“热(hot)/冷(cold)”,形成粗粒度的热度视图。
  5. 迁移决策与执行

    • 根据各 VM 的 DRAM 预算与范围热度,决定哪些范围需从慢层(如 PMEM)促迁到快层(DRAM)或反向降级。迁移通过协同的内存复制/重映射与 EPT 更新完成,因采用范围级别操作而减少 TLB 刷新和频繁的 PTE 操作。
  6. 双气球式弹性供给

    • Demeter 使用双重气球机制在 guest 与 hypervisor 间动态调整 DRAM 配额,既保持多租户环境的内存弹性,又把具体的冷热管理逻辑下放到 guest,从而避免 hypervisor 层面的昂贵全局跟踪。
  7. 持续循环与自适应调整

    • 周期性重做采样—分类—迁移流程,响应热点的动态变化,保证性能和资源利用的长期最优化。

关键技术

  1. 在Guest中启用EPT友好的PEBS:突破性地让Guest OS能直接、低开销地利用PEBS硬件进行访存追踪,追踪开销降低了16倍
  2. 虚拟地址空间中的热度分类:直接在保留了应用局部性的客户机虚拟地址空间中分析热点,远比在破碎的物理地址上分析更高效、准确。
  3. 双气球机制:Hypervisor端通过为快、慢内存分别设置独立的VirtIO气球,实现了对虚拟机内存分层的弹性、精细化供应。

压倒性优势:在多种真实世界负载下,Demeter相较于基于Hypervisor的最佳方案,性能提升高达2倍,并将数据库应用的99%尾延迟降低了23%


结语:

SOSP'25 “Session 2:数据中心” 的五篇论文,共同揭示了仓库级计算机(Warehouse-Scale Computer)系统设计和资源管理创新的几条核心路径:

  1. 跨界借力 (Leveraging Synergy):无论是Oasis巧妙“借道”CXL内存总线来实现I/O互联,还是Spirit从百年经济学理论中汲取灵感解决资源分配难题,都展示了打破领域壁垒、进行思维跃迁的巨大威力。
  2. 权责下放(Delegating Intelligence)Mage 将逐出从前台关键路径下放到后台流水线;Demeter 将分层内存的冷热判定下放给最了解应用行为的 Guest OS;Oasis 则把数据面的交互下沉到共享内存,绕开跨主机一致性的硬件门槛。
  3. 软硬协同 (Hardware-Software Co-design):NVIDIA的实时迁移技术雄辩地证明,在性能的极限边界,软件的单打独斗已难以为继。让硬件成为“智能伙伴”,主动参与到复杂的系统管理流程中,是压榨潜能、突破旧有瓶颈的必然选择。

从PCIe设备到内存带宽,从远程分页到虚机迁移,这些工作不仅解决了具体的工程难题,更重要的是,它们共同定义了一套构建下一代“乐高式”数据中心的设计原则。服务器不再固化,几乎所有资源都以前所未有的细粒度被池化管理和调度分配,实现极致性能和资源利用率。



感谢阅读,敬请锁定“存储前沿技术评论”!

喜欢的话,记得点赞、留言🙋🏻‍♀️、转发

我们下期见!

【声明】内容源于网络
0
0
存储前沿技术评论
“存储前沿技术评论”由热爱存储技术的专家和爱好者创建,专注于分享存储领域的最新研究、技术、和产品趋势,旨在为存储行业的学者、学生以及工业界同行提供有价值的信息和观点。欢迎您关注和交流,让我们一起探索存储技术的无限可能。
内容 98
粉丝 0
存储前沿技术评论 “存储前沿技术评论”由热爱存储技术的专家和爱好者创建,专注于分享存储领域的最新研究、技术、和产品趋势,旨在为存储行业的学者、学生以及工业界同行提供有价值的信息和观点。欢迎您关注和交流,让我们一起探索存储技术的无限可能。
总阅读6
粉丝0
内容98