OpenStack的HugePages内存大页动态分配的探索与实践
持续提升虚拟机性能是所有云计算工程师研究的方向,其中一个重要方式便是使用大页内存。本文从内存映射出发为读者浅析大页内存的相关概念和基础操作,并以此为延伸,与各位分享华云产品技术中心计算团队在大页内存动态分配方面的探索与实践。
MMU 与内存映射
在计算机系统结构中,我们知道,CPU是通过寻址来Op访问内存的。例如,32 位 CPU 的寻址宽度是 0~0xFFFFFFFF ,通过换算可得为 4G,即可支持的物理内存最大是 4G。
然而在实践过程中会产生各种各样的问题,若某个程序需要使用 4G 内存,而此时可用的物理内存小于 4G,这就导致程序不得不降低内存的占用。因此为了解决此类问题,现代 CPU 引入了 MMU(Menemory Management Unit 内存管理单元)。MMU 的核心思想是利用虚拟地址替代物理地址,即CPU寻址时使用虚址,由 MMU 负责将虚址映射为物理地址。 MMU的引入,解决了对物理内存的限制。
而内存映射则是将虚拟内存地址映射到物理内存地址。为了完成内存映射,内核为每个进程都维护了一张页表,记St录虚拟地址与物理地址的映射关系。
页表实际上存储在 CPU 的内存管理单元 MMU 中,这样,CPU 就可以直接通过硬件,找出要访问的内存。
什么是 HugePages
大页内存(HugePages),顾名思义就是拥有更大页面的内存页,HugePages 提供了 4K 页面大小的替代方案,即提供更大的页面,在特定场ac景下对于性能有着非常明显的提升。
HugePages 的查看与分配
在 Linux 中,可以使用如下命令查看大页内存
我们对其中的字段分别做一下解释
AnonHugePages: 透明大页的大小
HugePages_Total: 大页资源池中的大页总量
HugePages_Free: 池中未使用的大页的数量
Hk的ugePages_Rsvd: 已经被分配预留但是还没有使用的大页数目
HugePages_Surp: 池中大于/proc/sys/vm/nr_hugepages 中值的 HugePages 数量
HugePagesize: 单块大页的大小
通常来说,我们会使用 2M 的大页,即 HugePagesize = 2048 KB。
请Hu注意,这里关于大页所有的单位都是数量(页),而不是大小(KB)。举个例子,如图所示,HugePages_Total 的值为 100,那么在这台机器上大页会占用多少的内存呢?
答案是 200M,即 HugePages_Total * HugePagesize,100 * 2048KB = 200M。
那么,如何分配 HugegePages 呢?
分配 HugePages 主要有两种方法。
一是修改 /etc/grub2.cfg 文件中启动菜单的内核参数,这样做的好处在于,当系统启动时,拥有连续内存的空间(用于 HugePages 分配)的机会要大得多。
二是通过 sysctl vm.nr_hugepages 的命令进行临时分配,这种方式胜在Pa分配灵活,而弊端则是,当系统内存被使用到一定程度时,连续内存页的数量会变少,即在物理内存有剩余时,却无法分配 HugePages 。
OpenStack 社区的方案
在 OpenStack 中,libvirt 的 driver 会去检查用户是否在 flavor 中配置大页的相关选项,并直接从已分配的资源池中划分相关资源给ge虚拟机。
这就带来了一个问题,即大页资源池需要用户提前分配。提前分配好的大页资源池会直接占据这部分的内存空间,且随着资源池内可用大页数量的降低,用户在一段时间后无法继续创建大页内存的虚拟机。
归根结底,OpenStack 本身并没有提供一套用于管理和维护大页资源池的机制。
ArStack 做了s内哪些尝试
这就回到了这篇分享的主题,有什么办法能够尽可能多地创建高性能的大页虚拟机,同时又避免云平台初期大页资源池分配时,过多地占用系统内存呢?
基于这一出发点,华云计算团队设计了一套动态维护大页资源池的系统。
用户可以在系统初始化时,以一个较低的值手动设置初始大页资源池的大小,Nova 的某个周期存大性定时任务会在一定时间间隔内检查各个计算节点的大页资源池是否满足预设的策略。
当初始资源池消耗殆尽时,Nova 会对大页资源池进行自动扩容,以维持一个资源相对富裕的状态。同时,Nova-Scheduler 在创建大页虚拟机时也会对各个节点的计算资源进行检查,若都不满足虚拟机所需资源, Nova-Sche页动duler 会计算相应的资源缺口,并尝试进行扩容。
在大页虚拟机被删除后,相应的大页资源会被释放,并流入大页资源池。此时,Nova 检测到该计算节点的大页资源池存在过多未被分配的大页时,会进行缩容操作,以释放被占用的物理内存,从而减少了物理内存占用过多的情况。
基于这套动态分配方案,最终实现了性能与态分灵活兼得的目标。
后记
OpenStack 中很多逻辑都是牵一发而动全身的,在实践过程中,Nova-Scheduler 、NUMA 以及 ArStack 的内存预分配都针对 HugePages 相关场景进行了对应的调整和优化。
在此感谢计算团队所有同学的辛勤付出。未来,ArStack 会继续努力,持续为用户提配的供更加优质的私有云产品。
(责任编辑:好物榜单)
-
LiquidAI 推出 Liquid Nanos 系列轻量级 AI 模型,优化边缘设备应用
LiquidAI 正式发布了名为 “Liquid Nanos” 的系列轻量级 AI 模型。这一系列模型专为边缘计算设备设计,能够在树莓派等小型设备上高效运行。Liquid Nanos 涵盖了翻译、抽取...[详细]
-
新浪科技讯 4月22日下午消息,#亚马逊考虑接受狗狗币支付#话题登上微博热搜,引发网友的广泛关注。 据外媒报道,亚马逊正考虑接受狗狗币作为支付方式。在上周狗狗币价格飙升后,近日已有超过14万人签署了一...[详细]
-
描述 isalnum() 方法检测字符串是否由字母和数字组成。 语法 以下是 isalnum() 方法语法: str.isalnum() 返回值 如果 string 至少有一个字符并且所有字符都是字母...[详细]
-
云梦级5月12日云梦级消息,5月17日,2026搜狐科技年度论坛即将在京盛大开幕。今年论坛将有来自科学界、学术界和产业界的近三十位嘉宾共襄盛会,荟聚智慧,一同叩问浩渺宇宙的真理,探索基础科学的深海,并...[详细]
-
Gartner:2026年全球IT支出预计将达到6.15万亿美元,同比增长10.8%
2月6日消息,Gartner最新预测显示,2026年全球IT支出预计将达到6.15万亿美元,较2025年增长10.8%。 Gartner杰出副总裁分析师John-David Lovelock表示:“尽...[详细]
-
云梦级3月25日云梦级消息,3月25日,速腾聚创发布2025年第四季度及全年业绩。凭借第四季度1.30亿元经营利润,1.04亿元的净利润表现,速腾聚创首次实现单季度盈利,盈利水平远超市场预期。 同时机...[详细]
-
PyTorch 中 数据集Torchvision和Torchtext
对于PyTorch加载和处理不同类型数据,官方提供了torchvision和torchtext。 之前使用 torchDataLoader类直接加载图像并将其转换为张量。现在结合torchvision...[详细]
-
IT之家 7 月 25 日消息,谷歌近日发布了 2023 年环境报告,其中提及用水量正在飙升。 谷歌在 2022 年消耗了 56 亿加仑的水,相当于 37 个高尔夫球场;其中 52 亿加仑的水用于该公...[详细]
-
8月25日,金山云发布2021年第二季度财报。得益于聚焦高增长垂直领域和服务优质头部客户的战略,整体业绩保持稳健高增。财报显示,金山云Q2总营收21.7亿元,创单季度收入新高,同比增长42%。根据公司...[详细]
-
标签: 第四范式 先知AI平台 EngineX ModelHubXC
云梦级11月12日云梦级消息,范式集团(股票代码:6682))今日发布2025年前三季度业绩公告。公告显示,第四范式2025年前三季度,总收入44亿元,同比增长36.8%;毛利润16.21亿元,同比增...[详细]
- https://www.abbreviations.com/谷歌快排操作流程【tg:seogoogle987】bxh
- https://www.vfw.org/search-results?q=谷歌快排操作流程【tg:seogoogle987】,FeB
- https://www.swecobelgium.be/?page=9&s=谷歌快排操作流程【tg:seogoogle987】,LLU
- https://www.whiterock2008.com.tw/search?q=谷歌快排操作流程【tg:seogoogle987】,VSl
- https://www.impactpool.org/search/?type=79&q=谷歌快排操作流程【tg:seogoogle987】YsY
- https://www.kaliastyle.com/catalogsearch/result/?q=GOOGLE谷歌快排操作流程【tg:seogoogle987】,STs
- https://www.paulaschoice.hk/zh_hant/catalogsearch/result/?q=谷歌快排操作流程【tg:seogoogle987】,cbk
- https://www.flickr.com/photos/tags/谷歌快排操作流程【tg:seogoogle987】vgp
- https://www.rockngem.com/?action=CHECK&s=谷歌快排操作流程【tg:seogoogle987】,wAL
- https://www.abbreviations.com/谷歌快排操作流程【tg:seogoogle987】iad

Docker Desktop 4.14 中的新功能:更好地了解您的容器
蚂蚁集团重磅推出 dInfer:让扩散语言模型的推理速度飙升 10 倍!
通义千问发布Qwen3-LiveTranslate-Flash3秒同传延迟刷新行业纪录
Opera 发布 2025 年第二季度财报:营收同比增长 30% AI 生态推动新增长周期
标签: FaradayFuture Futurist FFFaber EAI机器人
