大内存( Very Large Memory)和 大页( HugePages)系列一

      随着去IOE的风波越来愈大,oracle跟业务结合的太紧,动起来很是麻烦,但是动E(emc), I(IBM 的高端小机) 还相对更容易点。

现在已经不是10年前,内存是相当贵,现在内存基本是白菜价,而x86架构的pc server在性能,稳定性上也是越来越好,所以很多公司开始使用pcserver 来跑生产。

不少pc server 会 配置上很大的内存:64g,128g ,256g,甚至300 多个G 。。。。 所以很有必要去深究下oracle db 和hugepage ,vlm  的使用。


大内存也不是白配的,也是会有问题的,在了解问题前先来了解下oracle关于大内存的一些官方说明(以下内存基于linux 内核2.6x):


名词解释:

 page table :反应虚拟内存和物理内存间的映射关系 (virtual memory to physical memory mapping)



oracle VLM on Linux x86

大内存(VLM)配置解决32bit oracle db 突破 4G 内存访问限制
oracle VLM 选项通过  an in-memory file system ( /dev/shm ) 来创建一个大的database buffer cache  。
SGA 的其他部分从(正常内存) regular memory中分配

考虑到32bit 平台的使用的局限性,这里不再过多深入探讨。

详细内容可以查看online doc :
http://docs.oracle.com/cd/E11882_01/server.112/e10839/appi_vlm.htm#UNXAR392



 HugePages(大页)

大页是 Linux kernel 2.6 的一个特性,启用大页功能可以使用操作系统使用更大(>4KB)的内存页 (memory pages) 
使用大页可以提高系统性能,为什么呢? 大大减少了用来访问页表记录( page table entries)的资源;
大页支持   32bit 64bit  平台
大页支持        2M<= hugepage size  <= 256M   (需要考虑kernel version and the hardware architecture

对于oracle db而言,使用大页可以减少os 对page state 的维护,增加转换后备缓冲器(Translation Lookaside Buffer (TLB) 的命中率。

使用大页后, os 的页表会更小,对os 内核来说所需要监控的page的状态也更少。

使用 大页的好处:
通过增加TLB 命中率 来提升性能。
保证了内存中sga 相关的pages 会被锁定到内存里,不会被swap out。
连续的page 是预先分配的,不能被其他使用,除了System V shared memory (for example, SGA)
大页可以减少内核对 虚拟内存的记录信息。










你可能感兴趣的:(大内存( Very Large Memory)和 大页( HugePages)系列一)