Oracle在Linux下對記憶體大頁HugePage的實踐

巡完南山巡南山發表於2019-08-06

Oracle在使用Linux大頁時需要注意一些細節

1.需要使用SGA記憶體管理,或者回歸9i方式,各個pool手動管理

2.使用memory_target方式管理記憶體時系統設定的大頁無法被oracle使用

3.oracle是否利用了大頁,可以透過/proc/meminfo檔案檢視,同時在alert日誌啟動時也會記錄

4.會提升OS系統的效能,減小huge table頁表的大小,減少系統開銷

5.有些linux下的oracle在業務繁忙系統響應很慢,就是因為沒有合理的使用大頁,可以配合OSW資料分析


Linux設定大頁方法如下:

1. 關閉所有 oracle 例項

建議在修改大頁時關閉資料庫例項,也可以節點間分別操作

srvctl stop database -d orcl


2.使用 root 使用者在兩節點分別修改 /etc/security/limits.conf 檔案, 最後新增兩行:

oracle hard memlock unlimited

oracle soft memlock unlimited


3.分配 hugepages 記憶體,使用 root 使用者兩節點分別修改/etc/sysctl.conf新增如下內容:

大頁單位一般是2M,此引數代表數量,本次舉例為256G

vm.nr_hugepages = 131074


注:通常設定多少大頁使用如下公式計算,除以2代表Hugepage管理下每個大頁為2M。

select ceil(SGA_MAX_SIZE(G)*1024/2)+2 from dual;


4. 使用 root 使用者執行 sysctl -p 使更生效,並監控其空間分配情況。

sysctl -p

grep Huge /proc/meminfo


5.啟動 RAC 叢集中所有 Oracle instance

srvctl start database -d orcl


更多技術細節可以參考技術大牛老熊的文章,受益匪淺

https://mp.weixin.qq.com/s/40W-UL7OeSNsdgsUcl5TDg

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

相關文章