Linux Hugepage ,AMM及 USE_LARGE_PAGES - 2

tolywang發表於2014-05-27

2.  Hugepage基本資訊檢視 

   Linux中,可以透過如下命令來檢視HugePage相關的值:
$ cat /proc/meminfo | grep Huge
HugePages_Total:   0
HugePages_Free:    0
HugePages_Rsvd:    0
Hugepagesize:     2048 KB
  通常情況下,Linux hugepage大小為2MB (不同的處理器架構,可能不一樣)

HugePages_Total: Hugepage的頁面數量
HugePages_Free:  剩餘的頁面數量
HugePages_Rsvd:  被分配預留但是還沒有使用的page數目
Hugepagesize:    每單位數量大小

注意:  使用Hugepage記憶體是共享記憶體,它會一直pin在記憶體中,不會被交換出去,也就是說使用
hugepage的記憶體不能被其他的程式使用,所以一定要合理設定這個值,避免造成浪費。對於只使用
Oracle的伺服器來說,把Hugepage_pool設定成稍大於SGA大小即可。PGA因不是共享記憶體,是使用
不到Hugepage的。 

    HugePages_Free - HugePages_Rsvd部分的記憶體是浪費的,且不能被其他程式使用。在實際應用中,
儘可能讓HugePages_Free - HugePages_Rsvd=0

    設定了多少的huge page,free記憶體就會被使用多少。比如:設定sysctl vm.nr_hugepages=1024
之後, free命令可以看到free的記憶體會減少2048MB (1024*2M)。(這也和Hugepagesize的大小有關)

 

3.  Hugepage的好處:

a.  大大提高了CPU cache中存放的page table所覆蓋的記憶體大小,從而提高了TLB命中率。
b.  CPU cache中有一部分TLB(Translation Lookaside Buffer)用來存放部分page table以提高虛擬記憶體
地址到實體記憶體地址轉換的速度。因為page size變大了,所以同樣大小的TLB,所覆蓋的記憶體大小也變大了。
提高了TBL命中率,也就是提高了地址轉換的速度。
c. 減少CPU的sys的使用。由於提高了CPU的TLB的命中率,也就降低了CPU的sys部分的使用。
d. 大頁會將SGA LOCK在RAM裡, 當記憶體短缺的時候也不會被page out

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-1171323/,如需轉載,請註明出處,否則將追究法律責任。

相關文章