ASMM (Auto Shared Memory Manangement) 自動共享記憶體管理

tolywang發表於2010-07-05

ASMM (Auto Shared Memory Manangement)

Oracle只需要設定一個SGA總大小,10g會根據系統負載變化調節各記憶體元件大小。

開啟ASMM, 需要設定sga_target 及 statistics_level=typical/all 即可(basic表示關閉asmm)。 

ASMM只調整5個主要的記憶體池: buffer cache, shared pool, large pool, java pool, stream pool,
其他仍然需要手工調整(比如 log buffer,db_keep_cache_size 等)。
比如log buffer=3M, db_keep_cache_size 為100M , SGA大小為800M, 那麼可以自由調整的5個記憶體池
的中總大小是 800-3-100=697M . 

MMAN(Memory Manager後臺程式):  每隔很短時間詢問Oracle各記憶體元件advisor(顧問),然後根據建議
值自動調整各記憶體元件,如果使用spfile還會將顧問得出的建議值寫入spfile(引數以兩個下劃線開頭
__), 作為下次啟動值大小。

如果啟動了ASMM, 又手工設定了某引數為非零,Oracle會以手工設定的值為自動調整的最小值。
例如,手工設定了60M, 而MMAN自動調整的 __shared_pool_size為150M, 60M變成ASMM下共享記憶體的下限。
若手工設定200M, 則shared pool立即擴充套件,從__shared_pool_size=150M擴充套件到200M, 同時200M作為下限。
相關檢視:  v$sga_dynamic_components  . 

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

相關文章