Linux HugePages原理-配置与Oracle性能关系说明.docxVIP

Linux HugePages原理-配置与Oracle性能关系说明.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux HugePages原理-配置与Oracle性能关系说明

Linux HugePages原理-配置与Oracle性能关系说明一.原理HugePages(大页)是相对于Regular Pages(正规页)来说的。正常linux系统的Regular Pages的大小是4K,而HugePages可以提供比4K更大的存值。下表显示了不同平台下HugePages的值:HW PlatformSource Code TreeKernel 2.4Kernel 2.6Linux x86 (IA32)i3864 MB4 MB *Linux x86-64 (AMD64, EM64T)x86_642 MB2 MBLinux Itanium (IA64)ia64256 MB256 MBIBM Power Based Linux (PPC64)ppc64/powerpcN/A **16 MBIBM zSeries Based Linuxs390N/AN/AIBM S/390 Based Linuxs390N/AN/A相关参数介绍(1)Page Table 是操作系统上的虚拟内存系统的数据结构,其用来存储虚拟内存地址和物理内存地址之间的映射关系。这就意味着在虚拟内存系统上,我们访问内存时,是先访问Page Table,然后根据Page Table 中的映射关系,隐式的转移到物理的内存位置。当一个进程使用一块内存来工作时,进程使用的page 从local page table 中引用。 Local page table中的entries 又引用了System-Wide Page Table的page, 该page 指向了实际的物理内存地址。所以,理论上,用户的进程(如oracle进程),根据local page table中的entry 指向了system page table中的entry,而System page table中的entry 指向了实际的物理内存。当然,也有可能,2个不同的O/S 进程指向了system-wide page table 中同一个entry,如下图所示,最常见的原因是Oracle SGA的使用。正常情况下,linux对内存的访问如下图所示Process(进程)先访问system page table(系统的页表)通过页表的映射关系寻找Physical Memory(实际的物理内存)配置了HugePages的流程图如下:流程大致是一样的,只是system pagetable 里面多了HPage的映射关系,以及物理内存中有了更大的内存块区域比如例子里面的4096K(2) TLB(Translation Lookaside Buffer) 是CPU 中的一块buffer 或者cache,其大小的固定的, TLB中包含了部分Page Table,用来快速进行虚拟地址的转换。(3) hugetlb 是TLB中的一个entry,其指向HugePage(大于4k或预定义的一个large page)。 HugePage 通过hugetlb entries来实现,我们也可以说HugePage 是hugetlb page entry的一个句柄。 在MOS 文档:Note 261889.1中,二者是几乎是相同的概念。相当于hugetlb给TLB指路,它指向的是HugePage的地址。二.作用(优势)2.1 特点(1)不需要内存页的交换,无需用到swap(2)减轻TLB的压力a.从进程对linux内存的访问方式我们知道,HugePage让映射关系对应的链接条目变少了,需要链接TLB的条目也相应减少了b.由于HugePage的存值比较大,覆盖比较大的范围,因此对映射到SGA中的空间也会大c.减少TLB的条目链接意味着更多的其他地址空间的链接。(3)降低pagetable的消耗每个一个page table 的entry最大需要64 bytes的内存,如果我们管理50GB的内存,那么Pagetable 就需要约800MB的内存空间. 如果我们使用256MB的hugepage,同样对于50G的内存,我们只需要40MB的pagetable。 举例说明:按普通模式,每个page 4k,那么需要的entries个数是:(50*1024*1024/4)每个entry 是64bytes,所以总的内存大小就是:(50*1024*1024/4) * 64/1024/1024=800M注意,这只是一个进程的page table,如果有10个进程,那么光处理这些page 就需要800*10,约8G的内存空间,而我们总共的内存也不过50G而已,所以大内存的情况下,需要HugePage就显的尤其重要。HugePage 最大的大小从2M到256MB,按2MB算:(50*1024/2)*64/1024/1024= 1.6M10 进程也才16

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档