熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle9i在AIX上的性能調整--內存篇

2013-11-13 12:46:53  來源: Oracle 
內存訪問的沖突出現在當進程申請的內存超過系統的物理內存總量時為了處理這種情況系統將程序與數據在內存和硬盤間進行交換

  控制內存交換操作(Paging)

  大量的內存交換操作會極大地影響系統的性能尤其是在當數據庫文件創建在文件系統上時(JFS and JFS)在這種情況下經常訪問的數據即在SGA中存在也同樣在文件的緩存中存在這種相同的數據在內存中緩存兩次的情況會降低內存的使用效率從而使內存頻繁進行交換操作造成系統的I/O瓶頸降低整個系統的性能

  調整AIX上的文件緩存

  在AIX上可以通過vmtune命令中的MINPERM和MAXPERM參數調整系統文件緩存來控制內存交換操作MINPERM和MAXPERM參數的調整應遵照以下的原則

  當內存中的文件緩存頁在MINPERM以下時內存頁交換算法同時交換文件緩存頁和程序頁(computational pages)
  當內存中的文件緩存頁在MAXPERM以上時內存頁交換算法只交換文件緩存頁
  當內存中的文件緩存頁在MINPERM和MAXPERM之間時內存頁交換算法通常只交換文件緩存頁但如果文件緩存頁的交換率大於程序頁時程序頁也同樣被交換
  MINPERM和MAXPERM參數的缺省值
  MINPERM = ((number of memory page) )*
  MAXPERM = ((number of memory page) )*
  可以用以下命令將MINPERM設為%的內存頁而MAXPERM設為%的內存頁

  # vmtune p P

  缺省值分別為%和%

  在Oracle數據庫應用的環境下可以將MINPERM和MAXPERM分別設為%和%甚至更小從而使內存更多地被用於Oracle的SGA而不是系統的文件緩存

  配置足夠的交換區

  如果交換區空間不足會造成系統響應速度變慢甚至掛起交換區的大小取決於系統內存的大小以及應用程序對內存的需求在AIX上可以動態增加交換區也可以用lsps命令察看交換區的使用狀況以及用vmstat監視系統內存頁交換的操作

  通常交換區的大小需要大於系統的實際內存這主要取決於應用程序對內存的需求用戶需要監視交換區的使用狀況根據需要增加交換區的空間對於運行Oracle Application或Oracle development tools可能需要較大的交換空間

  排定內存需求優先級

  如果系統的內存不足就需要對進程對內存使用的優先級進行排序將內存優先分配給能獲得更好的系統總體性能的進程通常的順序如下
   AIX和Oracle的核心進程
   應用程序進程
   Oracle的Redo log buffer
   PGA和共享池(shared pool)
   Oracle的數據緩存(block buffer cache)
  例如當你查詢Oracle的動態性能表時發現共享池(shared pool)和數據緩存區(block buffer cache)都需要配置更多地內存而你的系統中的空閒內存有限那麼將空閒內存分配給共享池比分配給數據緩存區有更好的效果

  數據塊(Database block)的大小

  用戶可以選擇Oracle數據庫中數據塊的大小以獲得更好的性能在AIX上通過設置DB_BLOCK_SIZE初始化參數選擇從KB到KB的數據塊缺省值是KB如果數據文件在文件系統上則Oracle數據塊的大小應為文件系統數據塊KB的整倍數如果數據文件在系統裸設備上則Oracle數據塊的大小應為系統數據塊B的整倍數

  Oracle公司推薦對於在線交易的應用(OLTP)或混合型的應用環境采用KB或KB的數據塊對於BI的應用或決策支持系統(DSS)采用更大的數據塊KBKB或KB

  調整日志歸檔緩存(Log Archive Buffers)

  配置較大的緩存可以提高數據庫日志歸檔的速度但注意不要對整個系統的性能產生影響用戶可以將LOG_ARCHIVE_BUFFER_SIZE增加到KB (其缺省值為KB)會提高%的數據庫歸檔操作的性能

  調整SGA的大小

  對於Oracle SGA來說被系統的內存管理程序換出到交換區上肯定是用戶最不願意見到的情況這就需要系統配置有足夠的內存對於大量用戶同時在線的應用建議配置較大的SGA區對於SGA影響最大的參數是DB_BLOCK_BUFFERS和SHARED_POOL_SIZE增大這兩個參數取決於用戶希望分配給SGA內存的大小同時增大這兩個參數也會造成CPU的利用率提高

  小結

  合理的內存配置是Oracle數據庫性能調整的重要方面其根本的目標是首先盡量避免系統內存頁的交換操作然後盡量將應用程序經常用到的數據緩存在系統的SGA區中


From:http://tw.wingwit.com/Article/program/Oracle/201311/16571.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.