Oracle資料庫中如果標準大頁設置不合理,可能導致物理記憶體被浪費掉。下麵介紹一個案例: 查看標準大頁的信息,如下所示: $ grep HugePages /proc/meminfoAnonHugePages: 0 kBShmemHugePages: 0 kBFileHugePages: 0 kBH ...
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重新計算標準大頁的值。