Oracle資料庫9i在AIX環境下的效能調整
控制記憶體交換操作(Paging)
大量的記憶體交換操作會極大地影響系統的效能,尤其是在當資料庫檔案建立在檔案系統上時(JFS and JFS2)。在這種情況下經常訪問的資料,即在SGA中存在,也同樣在檔案的快取中存在。這種相同的資料在記憶體中快取兩次的情況,會降低記憶體的使用效率,從而使記憶體頻繁進行交換操作,造成系統的I/O瓶頸,降低整個系統的效能。
調整AIX上的檔案快取
在AIX上,可以透過vmtune命令中的MINPERM和MAXPERM引數,調整系統檔案快取來控制記憶體交換操作,MINPERM和MAXPERM引數的調整應遵照以下的原則:
當記憶體中的檔案快取頁在MINPERM以下時,記憶體頁交換演算法同時交換檔案快取頁和程式頁(computational pages)
當記憶體中的檔案快取頁在MAXPERM以上時,記憶體頁交換演算法只交換檔案快取頁。
當記憶體中的檔案快取頁在MINPERM和MAXPERM之間時,記憶體頁交換演算法通常只交換檔案快取頁,但如果檔案快取頁的交換率大於程式頁時,程式頁也同樣被交換。
MINPERM和MAXPERM引數的預設值
MINPERM = ((number of memory page) - 1024)*0.2
MAXPERM = ((number of memory page) - 1024)*0.8
可以用以下命令將MINPERM設為5%的記憶體頁,而MAXPERM設為20%的記憶體頁。
# vmtune -p 5 -P 20
預設值分別為20%和80%。
在Oracle資料庫應用的環境下,可以將MINPERM和MAXPERM分別設為5%和20%甚至更小,從而使記憶體更多地被用於Oracle的SGA而不是系統的檔案快取。
配置足夠的交換區
如果交換區空間不足會造成系統響應速度變慢甚至掛起,交換區的大小取決於系統記憶體的大小以及應用程式對記憶體的需求。在AIX上可以動態增加交換區,也可以用lsps命令察看交換區的使用狀況,以及用vmstat監視系統記憶體頁交換的操作。
通常交換區的大小需要大於系統的實際記憶體,這主要取決於應用程式對記憶體的需求。使用者需要監視交換區的使用狀況,根據需要增加交換區的空間。對於執行Oracle Application或Oracle development tools可能需要較大的交換空間。
排定記憶體需求優先順序
如果系統的記憶體不足,就需要對程式對記憶體使用的優先順序進行排序,將記憶體優先分配給能獲得更好的系統總體效能的程式。通常的順序如下:
1. AIX和Oracle的核心程式
2. 應用程式程式
3. Oracle的Redo log buffer
4. PGA和共享池(shared pool)
5. Oracle的資料快取(block buffer cache)
例如:當你查詢Oracle的動態效能表時發現共享池(shared pool)和資料快取區(block buffer cache)都需要配置更多地記憶體,而你的系統中的空閒記憶體有限,那麼將空閒記憶體分配給共享池比分配給資料快取區有更好的效果。
資料塊(Database block)的大小
使用者可以選擇Oracle資料庫中資料塊的大小以獲得更好的效能,在AIX上透過設定DB_BLOCK_SIZE初始化引數,選擇從2KB到32KB的資料塊,預設值是4KB。如果資料檔案在檔案系統上,則Oracle資料塊的大小應為檔案系統資料塊4KB的整倍數。如果資料檔案在系統裸裝置上,則Oracle資料塊的大小應為系統資料塊512B的整倍數。
Oracle公司推薦,對於線上交易的應用(OLTP)或混合型的應用環境,採用2KB或4KB的資料塊。對於BI的應用或決策支援系統(DSS),採用更大的資料塊,如8KB,16KB或32KB。
調整日誌歸檔快取(Log Archive Buffers)
配置較大的快取可以提高資料庫日誌歸檔的速度,但注意不要對整個系統的效能產生影響。使用者可以將LOG_ARCHIVE_BUFFER_SIZE增加到128KB (其預設值為4KB),會提高0-20%的資料庫歸檔操作的效能。
調整SGA的大小
對於Oracle SGA來說,被系統的記憶體管理程式換出到交換區上,肯定是使用者最不願意見到的情況,這就需要系統配置有足夠的記憶體。對於大量使用者同時線上的應用,建議配置較大的SGA區。對於SGA影響最大的引數是DB_BLOCK_BUFFERS和SHARED_POOL_SIZE。增大這兩個引數,取決於使用者希望分配給SGA記憶體的大小,同時,增大這兩個引數也會造成CPU的利用率提高。
結論:
我們合理的記憶體配置,是Oracle資料庫效能調整的重要方面,其根本的目標是,首先儘量避免系統記憶體頁的交換操作,然後儘量將應用程式經常用到的資料快取在系統的SGA區中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/786540/viewspace-1004402/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle資料庫的效能調整Oracle資料庫
- oracle資料庫的效能調整(轉)Oracle資料庫
- 淺談AIX環境下的Java效能調優AIJava
- Oracle 9i效能調整 [ZT]Oracle
- 在AIX下為Oracle調整網路引數AIOracle
- 在AIX下為Oracle調整磁碟I/O引數AIOracle
- 在aix oracle rac 環境下,增加lv的步驟AIOracle
- Oracle資料庫效能調整 - 建議器 ADVICEOracle資料庫
- aix下oracle資料庫管理AIOracle資料庫
- Oracle 資料庫引數調整Oracle資料庫
- Oracle資料庫SQL語句效能調整的基本原則 (3)Oracle資料庫SQL
- Oracle資料庫SQL語句效能調整的基本原則 (2)Oracle資料庫SQL
- Oracle資料庫SQL語句效能調整的基本原則 (1)Oracle資料庫SQL
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- Unix環境下的Oracle調優Oracle
- MySQL資料庫環境如何調整磁碟IO排程演算法MySql資料庫演算法
- oracle 效能調整Oracle
- 在Linux環境下安裝Progres資料庫Linux資料庫
- Oracle效能調整之--DML語句效能調整Oracle
- 【效能調整】海量資料的效能設計
- oracle&linux環境vm相關的調整OracleLinux
- oracle for aix記憶體調整OracleAI記憶體
- Oracle DataGuard環境主備庫日誌組數和大小調整Oracle
- 在 Homestead 環境下為 PHP 新增 Oracle 資料庫擴充套件(OCI)PHPOracle資料庫套件
- Docker環境Oracle資料庫搭建DockerOracle資料庫
- AIX下使用dbca建立oracle資料庫AIOracle資料庫
- oracle效能調整(1)Oracle
- oracle效能調整(2)Oracle
- ORACLE效能調整--1Oracle
- ORACLE效能調整---2Oracle
- Oracle 效能調整for HWOracle
- (zt)Oracle效能調整Oracle
- oracle效能調整2Oracle
- 在HACMP環境下裝單例項9IACM單例
- 建立高效能的資料庫——效能調整手冊和參考資料庫
- 收集資料庫統計資訊的Oracle工具——效能調整手冊和參考資料庫Oracle
- Unix環境下的Oracle調優原則Oracle
- 掌握Oracle資料庫效能調優方法Oracle資料庫