图解|透明大页原理与实现

在《图解|Linux大内存页原理》一文中,我们介绍过标准大页的原理与其优点,现在我们回顾一下标准大页有哪些优点:

减少转译后备缓冲区(Translation Lookaside Buffer,TLB)的失效情况,TLB 是 CPU 为了加速虚拟内存地址转换成物理内存地址而增加的缓冲区。减少页表的内存消耗。减少缺页异常(page fault)发生的次数,缺页异常处理例程需要对虚拟内存地址进行映射,而这个映射过程也是一个耗时的过程。

可以看出,使用大页能够加速系统的运行效率。

但是标准大页使用起来比较麻烦,需要挂载 Hugetlb 文件系统,并且需要使用 mmap 系统调用来对大页进行映射。为了解决标准大页使用麻烦的问题,红帽子(Red Hat)公司开发出透明大页(Transparent Huge Pages,THP)功能。


(相关资料图)

要使用透明大页功能,只需要使用以下命令开启即可:

echoalways>/sys/kernel/mm/transparent_hugepage/enabled

开启了透明大页功能后,内核将会创建一个名为khugepaged的内核线程。

khugepaged内核线程会不断扫描进程的虚拟内存空间(vma,virtual memory area),如果发现存在 2MB 地址连续的虚拟地址空间,那么判断其是否满足转换成大页的条件,如果满足则将这些物理内存合并成一个大页。如下图所示:

相对于使用繁琐的标准大页,透明大页显得更加友好。

透明大页原理

操作系统管理内存时,是以页作为单位的,常用的页大小有4KB、2MB和1GB。4KB 的内存页被称为普通内存页,而 2MB 和 1GB 的内存页被称为大页。

通常来说,4KB 的内存页使用频率最多,但有时候为了减少缺页异常发生的次数(提升程序的性能),所以会使用 2MB 或者 1GB 的内存页来代替 4KB 的内存页。

透明大页核心思想

透明大页的核心思想很简单:不断扫描进程的虚拟内存区间(vma),如果发现大小超过 2MB 的内存区间,将会判断其是否满足转换成大页的条件,如果满足则将这些物理内存合并成一个大页。

我们知道每个进程都有一个 mm_struct 结构,用来管理进程的虚拟内存空间和映射物理地址的页表等信息,而虚拟内存的区间是通过 vm_area_struct 结构(vma)来管理的。

透明大页的核心逻辑步骤:

查找满足转换成大页的内存区间

khugepaged内核线程会扫描进程的虚拟内存空间,如果发现内存区间大于等于 2MB,并且满足转换成大页的条件,那么将会进入下面的步骤。

标签: 虚拟内存 物理内存 异常发生

x 广告
热消息:2021标致5008 SUV在欧洲有四种动力总成供选择

第二代标致5008在2017款车型上亮相,仅在几个月前进行了翻新,现在已经

环球要闻:三重门手稿错误(三重门手稿)

1、如果只是出现一处两处,你可以说是笔误。2、但是类似的低能语文错误

看点:2023安徽淮北市考录公务员拟录用人员公示(二)

根据省委组织部《安徽省2023年度考试录用公务员工作实施方案》等规定,

饶河县 党建引领带动乡村振兴|世界看热讯

□杨启坤本报记者潘宏宇饶河县坚持以“船歌向党”党建品牌为引领,实施

通宇通讯:6月12日获融资买入4822.99万元,占当日流入资金比例17.67%

同花顺数据中心显示,通宇通讯6月12日获融资买入4822 99万元,占当日买

焦点快看:锋线“9选3”!男篮12人大名单呼之欲出,张镇麟与曾凡博不稳了!

锋线“9选3”!男篮12人大名单呼之欲出,张镇麟与曾凡博不稳了!,张镇

抖音聊天火花标识断了怎么恢复_qq大火花恢复教程

1、打开QQ,登录,2、在聊天界面找到和你有大火花的人,点击进入聊天页

中国女排今日开启世联赛香港站征程 天天观天下

2023年世界女排联赛(以下简称“世联赛”)中国香港站将在13日开赛,世

d-二聚体介绍_d二聚体是什么_环球短讯

D-二聚体是临床判断是否有血栓形成等相关表现的实验室指标,属于凝血功

要闻:枯藤老树昏鸦 小桥流水人家什么意思_枯藤老树昏鸦 小桥流水人家

1、枯藤老树昏鸦,小桥流水人家,古道西风瘦马。2、夕阳西下,断肠人在

x 广告

Copyright ©  2015-2022 南极城市网版权所有  备案号:粤ICP备2022077823号-13   联系邮箱: 317 493 128@qq.com