openEuler24.03LTS特性解读|动态复合页

Linux阅码场 2024-07-25 20:56

OpenAtom openEuler(简称"openEuler") 20.03 LTS 历史版本中,ARM64架构下默认基础页大小配置为64KB,相比传统的4KB基础页,在访存方面,64K页面能带来更快的page tale walk、更低的TLB miss,在存储IO路径上也能提升读写效率,因此64K基础页能够提升数据库等部分场景下的性能。然而,64K基础页却面临南北向生态问题(部分应用软件和外设驱动需要重新适配或重新编译)和内存底噪开销问题(64K相比4K粒度更粗,内存利用率更低,部分场景会带来巨大的内存消耗)。为此,openEuler在22.03版本将ARM64的默认基础页大小配置改回了4K,在性能上64K基础页有较大优势的场景,则可以单独编译64K基础页的二进制版本来支持,或者采用大页技术,虽然传统大页技术同样能够提升访存性能,但是它面临着使用不够灵活(hugetlb)和性能QoS无法保证(THP)的问题。

ARM64内存地址翻译对比

那么有没有一种技术,可以在一个内核二进制版本中,实现4K基础页的南北向生态兼容,以及64K页的性能提升,同时应用能够无感使用,并能够有效控制内存底噪?openEuler 24.03版本带来的动态复合页(large folio)技术正在解决这个难题。

动态复合页技术架构介绍

长期以来Linux内核中物理内存是基于struct page来管理的,每个page对象描述一个基础页(如4K),随着当前大模型、大数据等业务大内存需求,单个系统上的内存容量可以达到TB级别,以page为单位管理内存越显低效。folio(拉丁语 foliō,对开本)最早是Oracle的一名工程师提出的,背景是在搭载6TB内存的服务器上,page结构体达到了15亿个,开销巨大,同时内核内存回收模块的LRU链表长度将达到上亿,导致LRU lock锁竞争更加严重,持有该spinlock锁期间由于遍历超长链表cache miss也会更高,极其低效。Linux内存管理基于page(页)转换到由folio进行管理,相比page,folio可以由一个或多个page组成,采用struct folio参数的函数声明,将对整个“页面”进行操作,它可以是单个page,也可以是多个page(large folio)。采用large folio后,可以提升LRU管理效率、减少page fault次数提高内存分配效率、以large folio粒度建立大页映射可以降低page table walk开销,以及降低TLB miss。

openEuler 24.03版本基于linux 6.6 LTS版本作为基线进行演进,linux 6.6基线版本已经完成了部分模块对基础folio(4K)的重构,包括:内存分配、内存回收、pagecache、部分文件系统(xfs等),而对于large folio的支持则普遍缺失。为此,华为内核团队除了在linux社区中积极贡献folio相关补丁的同时,也在openEuler 24.03配套的6.6内核中实现了内存管理子系统和文件系统对于large folio的大量支持和软硬协同优化,并提供灵活的控制策略,完善了动态复合页技术架构:

openEuler24.03 LTS 动态复合页技术架构

内存管理子系统在以下方面实现了large folio,提升访存性能和内存管理效率:

  • 内存分配:支持mmap申请虚拟地址空间范围(VMA)时自适应按多种粒度的large folio对齐,如64K、2M,以便建立大页映射;支持应用透明的代码段大页,用户态免修改,支持64K、2M等多种粒度large folio以降低代码段iTLB miss,提升程序代码段访问性能。支持多粒度的匿名大页(multi-size THP),从而降低匿名页TLB miss,提升匿名页访问性能。为了加速大页面内存分配,降低伙伴系统zone锁冲突,支持PCP(per-cpu页面缓存)缓存64K粒度的large folio(for ARM64 contiguous bit大页)。

  • 底层核心机制:fork、munmap、mlock、madvise等系统调用功能实现支持large folio和批量化操作。完善了内存迁移、内存规整、NUMA balance、内存反向映射对large folio的支持,提升相关操作性能。内存交换(swap)支持large folio粒度的免拆分交换,提高内存交换效率,并针对ARM64架构完善MTE特性使能时的兼容支持。

  • 软硬协同优化:伙伴系统、大页、透明大页的large folio优化,支持大页拆分到任意order,内存聚合拆分、内存释放时批量化刷新TLB,避免频繁刷新TLB带来的性能开销。针对ARM64支持基于contiguous bit技术的大页,如64K“大页”,充分利用硬件TLB“压缩”机制降低TLB miss,提升程序性能。


ARM64各级大页示意图

文件系统在以下方面实现了large folio优化,大幅提升IO性能:

  • iomap框架回写流程支持批量映射block,充分发挥large folio的优势提升IO的回写性能:iomap框架脏页回写流程以文件系统block size为粒度迭代分配文件系统block并组织IO下发,使能large folio后无需经过多轮迭代下发一个dirty folio,通过优化支持以folio为粒度进行迭代,可显著减少文件系统空间分配次数。

  • 支持ext4默认模式下buffer写批量预留block,提升IO前台写性能:ext4文件系统buffer write以block size为粒度预留文件系统空间,当用户下发大IO时需要多次迭代处理,无法批量为大IO做空间预留;扩展buffer write空间预留接口支持批量按需预留连续空间,可大幅减少迭代操作的次数,提升IO前台写入page cache的性能,大幅优化各类benchmark下ext4性能表现。

  • ext4切换至iomap框架,并实现ext4支持large folio,提升读写性能:ext4文件系统buffered io读写流程以及pagecache回写流程弃用老旧的buffer head框架,切换到iomap框架可使extent分配按照用户下发IO大小迭代,预读和回写IO组装按large folio大小迭代,同时弃用jbd2 data=ordered的日志模式,文件数据无需依赖日志回写进程下发,大幅提升大IO读写性能。

Ext4文件系统支持large folio后的数据IO下发流程

动态复合页通过多层级的策略控制,提供方便易用的系统级、容器级、进程级的large folio开关接口(注:其中容器级、进程级接口将在后续版本更新中提供),以及文件系统large folio开关接口,用户按需配置关键应用生效,非关键应用避免不必要的内存开销。

综上,动态复合页技术通过优化内存管理和文件系统两大核心子系统对于大页的自适应支持,应用无需修改,即可以减少page table walk和TLB miss从而提升访存性能,在OS内核层面可以做到更多的批量化优化,从而提升内存管理、IO等关键路径上的性能。在底噪控制方面,提供多层级的控制开关,让关键应用按需使用。在兼容性上,操作系统的基础页面管理单元依然是4K,可以保持原生的南北向生态兼容,同一个二进制版本即可兼顾性能和兼容性。

效果分析

大数据收益测试

打开动态复合页后,测试hibench(Spark)结果各项指标平均提升10% 

Kafka收益测试

打开动态复合页后,测试kafka benchmark结果:producer带宽提升26%,consumer带宽提升11%

MySQL收益测试

打开动态复合页后,测试MySQL benchmark(sysbench),受益于代码段可以用户态无感得合成2M大页从而使iTLB miss率最高降低10倍,sysbench整体结果性能提升3%+

IO基础性能benchmark收益测试

打开动态复合页后,测试FIO读性能平均提升59%,写性能平均提升239%

内存分配benchmark收益测试

打开动态复合页后,测试linux社区常用的benchmark工具will-it-scale测试内存分配性能,受益于单次pagefault可批量分配large folio从而减少page fault次数,以及PCP缓存池的分配加速,匿名页和共享文件页的page fault ops平均提升100%

后续规划

未来动态复合页技术将持续聚焦于数据中心常见场景的性能优化,并将与芯片结合充分利用TLB单元以覆盖更大内存,进一步降低TLB miss提升性能。同时也将把相关特性持续贡献到Linux社区。

openEuler Kernel SIG

openEuler kernel 源代码仓库:https://gitee.com/openeuler/kernel 欢迎大家多多 star、fork,多多参与社区开发,多多贡献补丁。关于贡献补丁请参考:如何参与 openEuler 内核开发

openEuler kernel 微信技术交流群 请扫描下方二维码添加小助手微信,或者直接添加小助手微信(微信号:openeuler-kernel),备注“交流群”或“技术交流”,加入 openEuler kernel SIG 技术交流群。

本文转载自OpenAtom openEuler,如有侵权,请联系删除。

Linux阅码场 专业的Linux技术社区和Linux操作系统学习平台,内容涉及Linux内核,Linux内存管理,Linux进程管理,Linux文件系统和IO,Linux性能调优,Linux设备驱动以及Linux虚拟化和云计算等各方各面.
评论
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 463浏览
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 492浏览
  • LVGL(Light and Versatile Graphics Library)是一个免费的开源图形库,旨在为各种微控制器(MCU)和微处理器(MPU)创建美观的用户界面(UI)。LVGL可以在占用很少资源的前提下,实现丝滑的动画效果和平滑滚动的高级图形,具有轻量化、跨平台可用性、易于移植、操作友好以及免费使用等诸多优势。近期,飞凌嵌入式为OK3506J-S开发板移植了最新9.2版本的LVGL,支持多种屏幕构件以及鼠标、键盘、触摸等多种输入方式, 能够带来更加友好的操作界面;同时,启动速度也
    飞凌嵌入式 2025-01-10 10:57 46浏览
  • 随着通信技术的迅速发展,现代通信设备需要更高效、可靠且紧凑的解决方案来应对日益复杂的系统。中国自主研发和制造的国产接口芯片,正逐渐成为通信设备(从5G基站到工业通信模块)中的重要基石。这些芯片凭借卓越性能、成本效益及灵活性,满足了现代通信基础设施的多样化需求。 1. 接口芯片在通信设备中的关键作用接口芯片作为数据交互的桥梁,是通信设备中不可或缺的核心组件。它们在设备内的各种子系统之间实现无缝数据传输,支持高速数据交换、协议转换和信号调节等功能。无论是5G基站中的数据处理,还是物联网网关
    克里雅半导体科技 2025-01-10 16:20 433浏览
  • 随着全球向绿色能源转型的加速,对高效、可靠和环保元件的需求从未如此强烈。在这种背景下,国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景,并强调了2025年的前景。 1.对绿色能源解决方案日益增长的需求绿色能源系统依靠先进的电源管理技术来最大限度地提高效率并最大限度地减少损失。固态继电器以其耐用性、快速开关速度和抗机械磨损而闻名,正日益成为传统机电继电器的首选。可再生能源(尤其是太阳能和风能
    克里雅半导体科技 2025-01-10 16:18 319浏览
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 164浏览
  • 电动汽车(EV)正在改变交通运输,为传统内燃机提供更清洁、更高效的替代方案。这种转变的核心是电力电子和能源管理方面的创新,而光耦合器在其中发挥着关键作用。这些不起眼的组件可实现可靠的通信、增强安全性并优化电动汽车系统的性能,使其成为正在进行的革命中不可或缺的一部分。光耦合器,也称为光隔离器,是一种使用光传输电信号的设备。通过隔离高压和低压电路,光耦合器可确保安全性、减少干扰并保持信号完整性。这些特性对于电动汽车至关重要,因为精确控制和安全性至关重要。 光耦合器在电动汽车中的作用1.电池
    腾恩科技-彭工 2025-01-10 16:14 71浏览
  •   在信号处理过程中,由于信号的时域截断会导致频谱扩展泄露现象。那么导致频谱泄露发生的根本原因是什么?又该采取什么样的改善方法。本文以ADC性能指标的测试场景为例,探讨了对ADC的输出结果进行非周期截断所带来的影响及问题总结。 两个点   为了更好的分析或处理信号,实际应用时需要从频域而非时域的角度观察原信号。但物理意义上只能直接获取信号的时域信息,为了得到信号的频域信息需要利用傅里叶变换这个工具计算出原信号的频谱函数。但对于计算机来说实现这种计算需要面对两个问题: 1.
    TIAN301 2025-01-14 14:15 92浏览
  • 说到福特,就要从亨利·福特(Henry Ford)这个人物说起。在发明大王爱迪生的电气工厂担任工程师的福特下班后,总是在自家仓库里努力研究和开发汽车。1896年,福特终于成功制造出一辆三轮车,开启了福特汽车的传奇。最初几年,福特都是独自制造汽车并同时进行销售。 (今天很多人都知道的精益管理中的5S方法,或多或少地受到了福特 CANDO方法的影响。)1903年,福特从牧师、律师、银行家、会计师等十一位股东那里筹集了十万美元,并在自家庭院成立了美国第五百零三家汽车公司——福特汽车公司(Fo
    优思学院 2025-01-10 11:21 51浏览
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 482浏览
  • Snyk 是一家为开发人员提供安全平台的公司,致力于协助他们构建安全的应用程序,并为安全团队提供应对数字世界挑战的工具。以下为 Snyk 如何通过 CircleCI 实现其“交付”使命的案例分析。一、Snyk 的挑战随着客户对安全工具需求的不断增长,Snyk 的开发团队面临多重挑战:加速交付的需求:Snyk 的核心目标是为开发者提供更快、更可靠的安全解决方案,但他们的现有 CI/CD 工具(TravisCI)运行缓慢,无法满足快速开发和部署的要求。扩展能力不足:随着团队规模和代码库的不断扩大,S
    艾体宝IT 2025-01-10 15:52 160浏览
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 449浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 460浏览
  • 在不断发展的电子元件领域,继电器——作为切换电路的关键设备,正在经历前所未有的技术变革。固态继电器(SSR)和机械继电器之间的争论由来已久。然而,从未来发展的角度来看,固态继电器正逐渐占据上风。本文将从耐用性、速度和能效三个方面,全面剖析固态继电器为何更具优势,并探讨其在行业中的应用与发展趋势。1. 耐用性:经久耐用的设计机械继电器:机械继电器依靠物理触点完成电路切换。然而,随着时间的推移,这些触点因电弧、氧化和材料老化而逐渐磨损,导致其使用寿命有限。因此,它们更适合低频或对切换耐久性要求不高的
    腾恩科技-彭工 2025-01-10 16:15 97浏览
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 443浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦