阿里云顶会论文 OSDI'25 VIO 弹性直通

简介: 本文介绍阿里云团队发表于OSDI顶会的论文《To PRI or Not To PRI, That’s the question》,探讨云计算中虚拟化设备内存管理难题。论文提出纯软件方案VIO,通过内存预检、智能模式切换和自适应锁页设计,实现无需硬件支持的高效内存管理。该方案已在阿里云大规模部署,显著提升资源利用率,兼顾性能与兼容性。

云布道师

本期分享内容来自阿里云基础设施弹性计算团队发表在 OSDI 顶会的论文,OSDI 是 CCF 推荐的 A 类国际学术会议,Core Conference Ranking A 类会议,Impact score 4.79。OSDI 和 SOSP 是系统领域并驾齐驱的两个顶级会议之一。

本文作者介绍

阿里云基础设施事业部弹性计算虚拟化资源调度团队—陈梁

作者深耕工程与学术交叉领域,在国际顶级学术会议共发表 3 篇论文,并在实际工作中解决多个行业技术难题。


论文

To PRI or Not To PRI, That’s the question

论文作者


Yun Wang∗♠ Liang Chen*♢

Jie Ji♢ Xianting Tian♢ Ben Luo♢ Zhixiang Wei♠ Zhibai Huang♠ Kailiang Xu♠ Kaihuan Peng♢ Kaijie Guo♢ Ning Luo♢ Guangjian Wang♢ Shengdong Dai♢ Yibin Shen♢ Jiesheng Wu♢ Zhengwei Qi♠

♠Shanghai Jiao Tong University ♢Alibaba Group

背景介绍


在云计算环境中,虚拟化技术允许 CPU 和内存在多个用户之间共享,并且通过设备直通技术(SR-IOV)为用户提供了接近原生的 IO 性能。然而,这类技术存在局限:直通设备无法处理内存缺页,需要系统强制静态分配虚拟机使用的内存。这种静态内存分配的方式与云计算服务通过资源共享提升效率、降低成本的核心目标相悖。

2009 年,PCI 设备供应商联盟(PCI-SIG)在"内存地址转换系统"(ATS)规范中加入了 PRI (Page Request Interface) "。这项功能允许硬件设备在访问内存时,像普通程序一样触发内存缺页请求而非直接报错。其工作原理需要设备、内存管理模块和操作系统三方协作:当设备尝试访问不存在的内存时,系统会动态分配内存而非强制固定内存区域。

然而,这项技术的推广进程远不及预期。尽管早在 10 年前就已提出,但直到 2021 年英特尔在最新芯片组中才首次为内存管理模块添加了对这项功能的支持。目前,除了高端图形处理器外,大多数主流输入输出设备(如网络设备和存储设备)仍不支持该功能。此外,当前操作系统(如最新版 Linux)仅在特定内存管理模式下支持该技术,进一步限制了硬件兼容性。

现有工作

此前相关研究工作尝试在不依赖 PRI 技术的情况下解决虚拟机内存静态分配的问题,相关方案主要分为两类:

第一类是软件方案,包括(如 vIOMMU、coIOMMU、VProbe 和 IOGuard)。这类方法通常存在严重性能问题:它们会大幅降低系统运行速度,难以实际应用,且部分方案需要修改虚拟机软件代码。在云计算环境中,由于不同租户的虚拟机镜像存在较大差异,这类修改操作几乎不可行。

第二类方案则在硬件层面实现内存缺页处理(如 On-Demand Pageing 和 VPRI 技术)。这类方案将内存管理功能与硬件模块分离,理论上能提升效率。但现实应用中面临两大障碍:首先,它们仅能在高端或定制化硬件上运行,导致普通设备无法使用;其次,这类硬件方案会增加数据传输的延迟时间——就像在高速公路突然设置减速带,在高性能场景(如需要快速处理大量数据的任务)中降低整体效率。


洞察和挑战

当前硬件处理内存缺页的方式之所以效率低下,是因为它直接位于数据传输的核心路径上。与其被动等待设备报告内存缺页,不如在虚拟化管理层提前监控所有 I/O 请求。在物理设备访问内存前,主动处理所有潜在错误。这样一来,设备层面就不会出现内存缺页。我们方案的核心创新在于,用一套可控的软件处理流程替代了原有方案中不可预测的硬件处理流程,前者成本更低且更稳定,而后者可能因延迟导致系统崩溃。


可行性分析

  1. DMA 请求监控点 VirtIO 作为通用虚拟设备标准,在虚拟机与主机之间的数据交互节点(如请求触发点)提供了天然的监控机会。虚拟化管理层可以在此处无缝拦截 I/O 请求,且无需更改用户虚拟机的任何设置。
  2. 负载差异规律云环境中工作负载差异显著:观察发现,绝大多数虚拟机的 I/O 操作量较低(呈现“长尾分布”),而少数需要高吞吐量的虚拟机对速度极其敏感。因此,单一监控策略并不适用,需要根据负载情况灵活调整。

VIO 方案设计

针对上述洞察和技术挑战,我们提出了一种名为 VIO 的纯软件解决方案。其核心理念是:将内存缺页处理从硬件数据传输路径中剥离,通过虚拟化管理层提前检测并处理,从而让物理设备完全“看不到”内存缺页。


关键设计 1:内存预检机制(IOPA-Snoop)

实现原理:利用通用虚拟设备标准 VirtIO,当虚拟机准备完成数据请求并发送触发信号时,VIO 会拦截该信号。在通知物理设备前,系统会检查本次请求所需的所有内存区域是否已加载到物理内存中。若存在缺失的页面,虚拟化管理层会立即从存储中加载,确保物理设备访问时所有数据已就绪,从而避免内存缺页发生。



关键设计 2:智能模式切换(弹性直通)

问题背景:虽然每次预检仅需约 4 微秒,但在高负载场景下累积延迟可能影响速度。同时,高吞吐量任务通常需要更多内存,预检带来的内存优化收益有限。

解决方案:通过动态模式适配,VIO 在不同负载下自动切换策略:

  • 低负载时(如普通虚拟机):启用预检模式,回收不活跃的内存页面,提升资源利用率;
  • 高负载时(如数据库或渲染任务):自动切换到直通模式,跳过预检步骤,确保数据传输速度接近物理设备性能极限。

技术实现:这种切换通过调整设备的“虚拟队列视图”和“内存地址映射表”实现,全程对用户完全无感(无需暂停虚拟机或修改配置)。



关键设计 3:自适应锁页

功能目标:减少预检时需要处理的缺失页面数量,进一步降低开销。

实现方式:系统会持续追踪数据访问模式,识别频繁访问的内存区域(如虚拟设备的数据接收区),并将其锁定在物理内存中。例如,当虚拟网络设备持续接收数据时,系统会自动锁定其接收缓冲区对应的内存,避免频繁的加载与卸载。

方案总结

  1. 零硬件依赖:完全通过软件实现,无需修改物理设备或驱动。
  2. 动态切换:根据负载智能切换模式,兼顾内存优化与性能需求。
  3. 透明兼容:无缝部署到现有虚拟机,无需用户干预。

VIO 已在阿里云几十万台生产虚拟机上成功部署,在不影响服务质量的同时,每日可回收相当于上万台虚拟机的内存。总结而言,VIO 作为一个纯软件方案,在各种负载下都能提供稳定、接近原生的 I/O 性能,有效解决了设备直通带来的内存管理难题,并已在超大规模云环境中证明了其巨大的实用价值。



来源  |  云布道师公众号

相关文章
|
2月前
|
数据采集 人工智能 弹性计算
「智驱未来,云网随行」阿里云基础设施AI技术沙龙云网络专场在杭州举办
6月20日,阿里云基础设施AI Tech Day ·云网络专场在杭州太极禅院成功举办。活动吸引了来自吉利、极氪、浙江大学等35位技术负责人及师生参与。现场围绕AI场景下的算力资源网络建设,探讨了数据采集、模型调度、算力池化等关键技术方案,分享了阿里云在通义模型、PAI平台、弹性计算及云网络方面的最佳实践,助力企业构建智能、弹性的AI基础设施。
|
2月前
|
消息中间件 人工智能 监控
【云故事探索】NO.15:阿里云云原生加速鸣鸣很忙数字化
鸣鸣很忙集团作为中国最大休闲食品饮料连锁零售商,通过数字化与云原生技术实现快速扩张,4年完成其他企业10年的数字化进程。其采用阿里云全栈云原生方案,实现弹性扩容、智能补货、模块化开店等创新实践,支撑日均超430万交易数据稳定运行。未来将深化AI应用,推动供应链智能化与业务全面升级。
|
3月前
|
弹性计算 运维 监控
资源利用率提升50%:Serverless 驱动国诚投顾打造智能投顾新范式
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
331 19
|
存储 XML 弹性计算
Zotero+阿里云盘文献同步
通过将阿里云盘映射为WebDav,作为Zotero的文献同步网盘,实现了多设备上的Zotero文献同步
Zotero+阿里云盘文献同步
|
机器学习/深度学习 缓存 并行计算
NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
NVIDIA Tesla系列GPU适用于高性能计算(HPC)、深度学习等超大规模数据计算,Tesla系列GPU能够处理解析PB级的数据,速度比使用传统CPU快几个数量级,NVIDIA Tesla GPU系列P4、T4、P40以及V100是Tesla GPU系列的明星产品,云服务器吧分享NVIDIA.
83036 1
|
6月前
|
存储 人工智能 Cloud Native
【云故事探索】NO.13:全链路「长」在阿里云上!极氪汽车全速打造智能出行好体验
本文探讨了极氪汽车从创立到快速发展的背后,数字化体系对其成功的支撑作用。极氪通过与阿里云合作,利用云计算、PaaS服务及AI大模型等技术,实现了敏捷高效的用户体验和业务迭代。文章还分析了极氪在车联网安全、数据处理以及智能化座舱方面的技术突破,并指出全栈上云已成为智能电动车企业的必然选择,助力其在全球化与智能化趋势中脱颖而出。极氪的成功不仅源于产品定位,更得益于其对先进技术的深度应用。
|
Python Windows
win64系统安装32位的python解释器和打包成exe程序
本文说明了在win64系统环境下,如何安装32位的python解释器,同时对32位虚拟环境下运行的python程序进行打包,将其打包成可执行的exe程序,以图文相结合的方式记录了操作步骤,供大家参考。
840 0
|
12月前
|
消息中间件 人工智能 Serverless
【云故事探索】NO.9:大洋彼岸的智能工具:劳动力管理,盖雅搞得定
在数字化转型浪潮中,云计算成为企业创新的核心驱动力。苏州盖雅信息技术有限公司(简称盖雅工场)作为劳动力管理领域的领军者,自2009年成立以来,服务全球29个国家和地区,客户达1800家,覆盖600万员工。通过与阿里云合作,盖雅利用云计算提升业务效率,实现服务移动化,并借助AI技术推动未来智能化发展。
392 12
【云故事探索】NO.9:大洋彼岸的智能工具:劳动力管理,盖雅搞得定
conda常用操作和配置镜像源
conda常用操作和配置镜像源
28637 0
|
21天前
|
人工智能 弹性计算 监控
【云故事探索】NO.16:阿里云弹性计算加速精准学 AI 教育普惠落地
智能精准学联合阿里云打造全球首个K12教育超级智能体“寒雪老师”,通过弹性计算实现AI一对一教学,助力教育普惠。
【云故事探索】NO.16:阿里云弹性计算加速精准学 AI 教育普惠落地