阅读背景:

HugePagesandTransparentHugePages

来源:互联网 

概念:

内存是由块管理,即尽人皆知的页面。一个页面有 4096 字节。1MB 内存等于 256 个页面。1GB 内存等于 256000 个页面等等。CPU 有内嵌的内存管理单元,这些单元中包括这些页面列表,每一个页面都应用页表条目参考。
让体系管理大批内存有两种办法:
A.增长硬件内存管理单元中页表数
B.增大页面大小 
第一个办法很昂贵,由于现代处置器中的硬件内存管理单元只支撑数百或书签页表条目。另外实用于管理数千页面(MB 内存)硬件和内存管理算法可能没法很好管理数百万(乃至数十亿)页面。这会造成性状问题:但程序须要应用比内存管理单元支撑的更多的页面,该体系会退回到迟缓的基于软件的内存管理,从而造玉成部体系运行迟缓。
红帽企业版 Linux 6 采取第二种办法,即应用超大页面。
简略说,超大页面是 2MB 和 1GB 大小的内存块。2MB 应用的页表可管理多 GB 内存,而 1GB 页是 TB 内存的最好选择。
超大页面必需在引诱时分配。它们也很难手动管理,且常常须要更改代码以即可以有效应用。因此红帽企业版 Linux 也安排了透明超大页面 (THP)。THP 是一个提取层,可主动创立、管理和应用超大页面的大多数方面。
THP 体系管理员和开发者减少了很多应用超大页面的庞杂性。由于 THP 的目标是改良性状,所以其开发者(社区和红帽开发者)已在各种体系、配置、程序和负载中测试并优化了 THP。这样可以让 THP 的默许设置改良大多数体系配置性状。 

HugePages是Linux 2.6及以上版本内核的一个特征,它许可较大的页面管理内存,作为小型4KB页面大小的替换,它将SGA锁定到物理内存中,从而无需对SGA进行体系页表查找。透明HugePages内存与尺度HugePages内存不同,由于内核khugepaged线程在运行时动态分配内存。尺度HugePages内存在启动时预先分配,并且在运行时不会更改。Red Hat Enterprise Linux 6,Red Hat Enterprise Linux 7,SUSE 11,Oracle Linux 6和Oracle Linux 7默许启用透明HugePages内存,初期版本的Oracle Linux具有Unbreakable Enterprise Kernel 2(UEK2)内核。

透明HugePages虽然比HugePages更加灵巧却可能会在运行时致使内存分配延迟,致使节点重新启动和性状问题,为避免性状问题,Oracle建议所有Oracle数据库服务器上禁用透明HugePages。应用尺度HugePages来进步性状。内存是由块管理,即尽人皆知的页面。一个页面有 4096 字节。1MB 内存等于 256 个



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: