我这里有套实际的RAC库 和一个备库. RAC库没有配置HugePage,而备库我来了后亲手配置的HugePage.从戴明http://blog.csdn.net/tianlesoftware/article/details/8536435 里介绍 带来的好处有
1) Not swappable: 不需要内存页交换
HugePages are not swappable. Therefore there is nopage-in/page-out mechanism overhead.HugePages are universally regarded aspinned.
(2)Relief of TLB pressure: 减轻TLB的压力
(3)Decreased page table overhead: 降低pagetable 的消耗
每个一个page table 的entry最大需要64 bytes的内存,如果我们管理50GB的内存,那么Pagetable 就需要约800MB的内存空间. 如果我们使用256MB的hugepage,同样对于50G的内存,我们只需要40MB的pagetable。
(4)Eliminated page table lookup overhead: 降低page table 的lookup 次数
(5)Faster overall memory performance: 提升内存的性能
Dave 注释:
按普通模式,每个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.6M 10 进程也才16M而已。
本人疑问是 1和3 两点
1 是讲不需要内存交换页 可我使用SPOTLIGHT ON UNIX 看到红色的 每秒9千的页PAGE IN 主备库基本上一样多.
疑问是 好像不能 不交换内存页? 它是说不会使用交换内存 就是硬盘的SWAP
2 降低页表消耗,我从HTOP里看到 主库很多进程RES,SHR两项达到103G 系统内存256 分给SGA 145G
(50*1024*1024/4) * 64/1024/1024==> 145*1024*1024/4*64/1024/1024==>145/4*64=2320MB
这里基本上有20个活跃进程 也要40GB.
这里的疑问是 为什么 20个进程的页表大小 要合计在一起呢?
如果是合计 那么使用了大页内存 会不会让剩余内存比较多呢?free -g
total used free shared buffers cached
Mem: 125 124 1 0 0 20
-/+ buffers/cache: 103 22
Swap: 256 0 255