AIX上pin住Oracle的SGA的方法(轉)
在aix上,我們可以將oracle SGA pin在記憶體中,防止這部分記憶體交換。所以,通過pin住oracle SGA,能帶來很大的效能好處。
如果想要正確的pin住記憶體,涉及到2個OS核心引數與一個oracle init引數:
1、aix引數v_pinshm=1,預設是0,表示aix將支援pin住記憶體,設定方法為
#vmo -p -o v_pinshm=1
2、aix引數maxpin%=記憶體百分比,預設80%,表示支援的最大的可pin住記憶體的比例,設定方法為
#vmo -p -o maxpin%=90
3、oracle引數LOCK_SGA=true,表示oracle將使用這部分被pin住的記憶體,其實就是告訴oracle使用另外一種記憶體呼叫方法。
因為這部分pin住的記憶體不僅僅是oracle在使用,aix核心也可能需要用到這部分記憶體,所以,我們不能設定SGA超過如下2個公式的範圍:
1、SGA < 總記憶體*(maxpin%-10%),如果是預設值,則SGA不能超過總記憶體的70%
2、OS的pin住記憶體的總量(穩定執行時的總量,會隨SGA大小而變化) < 總記憶體*(maxpin%-5%),如果是預設值,則pin住的記憶體總量,不能超過總記憶體的75%
至於Oracle的SGA總量,可以通過如下命令檢視
SQL> select sum(value)/1024/1024/1024 "SIZE(G)" from v$SGA;
SIZE(G)
----------
71.2681394
至於被pin住的記憶體總量,可以通過OS的命令svmon來檢視
#svmon -G
size inuse free pin virtual
memory 27394048 23520958 3873090 20424376 20884173
pg space 16777216 41932
......
注意,以上pin住的部分,是表示4k大小的頁面個數(沒有使用大頁的情況下),那麼,折算成記憶體大小則是20424376*4/1024/1024=77.91G。
那麼,如果採用預設的maxpin%設定(80%),我們將需要多大的實體記憶體呢?
公式1:實體記憶體 = 71.27/0.7 = 102G
公式2:實體記憶體 = 77.91/0.75 = 104G
在兩者裡面取大值,表示我們至少需要104G的實體記憶體,再去掉其它轉換消耗,固定消耗,購買記憶體起碼需要108G。
關於以上2個公式,我還想補充說明一下,在5.2的早些版本中,只需要滿足公式1即可,如果實際設定的SGA記憶體超過了公式1的範圍,其實OS也只pin住maxpin%-10%的記憶體,其它的沒有pin住的記憶體,可能會導致交換的發生,最多是影響效能。
但 是,aix 5.2以後的一些版本以及aix 5.3版本,因為不同page size的出現(如64K的page size的大量使用),如果不符合以上的兩個公式,最嚴重的後果就是會導致OS被hang住,其實也就是aix的一個新的psm後臺程式,一個負責頁面轉 換的程式,當發現記憶體不夠的時候,會直接殺掉執行的程式。
夠狠,也夠爛。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/115963/viewspace-545719/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AIX上pin住Oracle的SGA的方法AIOracle
- ORACLE SGA 的分配(轉)Oracle
- Oracle 9i 在AIX上的安裝 (轉)OracleAI
- linux上Oracle的sga(HugePages)分配問題LinuxOracle
- 在AIX 5L上快速部署Oracle (轉)AIOracle
- 將SGA全部PIN到記憶體中記憶體
- 在AIX 5.* 6.1版本上開啟Oracle LargePage的方法AIOracle
- Oracle在各類操作上LOCK_SGA的設定Oracle
- 深入講解調整Oracle SGA大小的解決方法Oracle
- Oracle SGA中的Granule(粒度)Oracle
- [轉]32位Linux設定超大Oracle SGA的分析LinuxOracle
- 在AIX5.3中將Oracle SGA定在記憶體中的詳細步驟AIOracle記憶體
- Oracle10g 在AIX 5.3上的安裝OracleAI
- 增加資料庫SGA的方法資料庫
- Oracle記憶體結構(一)----SGA的區域資訊(轉)Oracle記憶體
- oracle 在 aix上large page特性OracleAI
- 對ORACLE的SGA 進行檢查Oracle
- 轉:關於SGA_MAX_SIZE與SGA_TARGET的詳解
- Oracle 在Linux X86上使用超過2G的SGAOracleLinux
- AIX上為ORACLE配置大頁面AIOracle
- Oracle10g 在AIX 6.1上的靜默安裝OracleAI
- 怎麼改變AIX上使用oracle的一些限制AIOracle
- ORACLE LOCK,LATCH,PINOracle
- AIX環境oracle使用者的.profile檔案(轉)AIOracle
- oracle歸檔的方法(轉)Oracle
- AIX 6.1, ORACLE 11G LOCK_SGA, LAGE_PAGE_SIZE(16MB) IMPORTANT!!!AIOracleImport
- Oracle大型資料庫系統在AIX UNIX上的實戰詳解 答疑五 AIX中的磁碟Oracle資料庫AI
- oracle sga相關Oracle
- oracle sga構成Oracle
- Oracle 10g SGA 相關的VIEWOracle 10gView
- aix下使用bash的方法AI
- 【轉】SGA_MAX_SIZE與SGA_TARGET
- oracle 10g中的SGA_MAX_SIZE與SGA_TARGET引數Oracle 10g
- aix6.1上安裝oracle 10.2.0.1AIOracle
- AIX 7.1上安裝Oracle11gAIOracle
- AIX上配置ORACLE 10g RAC EMAIOracle 10g
- 修改資料庫的ORACLE的SGA和PGA的值資料庫Oracle
- 刪除AIX下的ORACLEAIOracle