Oracle資料庫中如果標準大頁設定不合理,可能導致實體記憶體被浪費掉。下面介紹一個案例:
檢視標準大頁的資訊,如下所示:
$ grep HugePages /proc/meminfo
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
FileHugePages: 0 kB
HugePages_Total: 199680
HugePages_Free: 97561
HugePages_Rsvd: 77082
HugePages_Surp: 0
這個是計算標準大頁的使用的公式:
( HugePages_Total - HugePages_Free ) + HugePages_Rsvd = HugePages Usage
( HugePages_Total - HugePages Usage) x Hugepagesize = Free HugePages
下面根據實際情況計算,如下所示:
$ grep Hugepagesize /proc/meminfo
Hugepagesize: 2048 kB
(199680 - 97561 ) + 77082 = 179201 <<<---- HugePages Usage
(199680 - 179201 ) * 2048 = 41940992 kB <<<----- Free HugePages
由於標準大頁設定不合理,導致接近40G的實體記憶體被浪費了。所以標準大頁需要合理設定,避免實體記憶體的浪費。尤其是在調整SGA後,需要使用官方提供的指令碼hugepages_settings.sh重新計算標準大頁的值。