標籤:所有者 手工 包括 acl 節點 gre 大於 lock pre
因為自從接觸Oracle依賴,生產環境用的一般是Aix系統,在Aix下沒有聽說過關於HugePage的相關概念。最近處理了一個關於Suse Linux下HugePage的問題。當時排查的方向如下:
- 當客戶在單個節點做壓力測試時,實體記憶體為256G,隨著壓力測試的繼續,記憶體使用量率會飆升到100%,最終導致系統掛起。
- 當時在排查的時候,考慮到SGA已經限定為135G,pga_aggregate_limit大小為45G(在12C中此參數為硬性指標,當佔用的pga達到此參數設定的大小,串連會斷開)。正常情況下,資料庫使用的記憶體不會超過190G。
- 且通過給v$process查看PGA_ALLOC_MEM的SUM總和大小不超過5G。
後來最終定位到HugePage的問題,通過調整memlock最終解決。
下面來看一下在Linux下如何配置HugePage:
1.設定memlock參數:
設定的/etc/security/limits.conf檔案memlock使用者限制。設定值(單位為KB)略小於OS安裝的RAM,大於將要分配給oracle的記憶體總量。例如如果伺服器配置了256GB=264511244KB的記憶體,你可以設定:264511244*0.8=211608995。#vi /etc/security/limits.conf...oracle soft memlock 211608995oracle hard memlock 211608995
重新登入到Oracle產品所有者帳戶(例如‘oracle‘),檢查memlock限制。$ ulimit -l211608995
2.修改vm.nr_hugepages參數
確保所有的資料庫執行個體(包括ASM執行個體)都已啟動。手工計算vm.nr_hugepages>=SGA_Target/Hugepagesize(2M)如:SGA=143G, vm.nr_hugepages=(143+2)*1024/2=74240使用者編輯檔案/etc/sysctl.conf設定vm.nr_hugepages參數:#vi /etc/sysctl.conf...vm.nr_hugepages = 74240修改後,使參數立即生效sysctl -p
Oracle 在Linux下HugePage的配置