Oracle的記憶體分配和使用
在Oracle9i之前,PGA的記憶體使用估算一直比較複雜;從Oracle 9i開始,Oracle的自動PGA管理新特性使得Oracle的記憶體規劃得以簡化。
根據Oracle的建議,Oracle最多可以使用80%的實體記憶體,其餘20%保留給作業系統使用,在這80%的記憶體中,對於OLTP系統,Oracle建議分配20%給PGA使用;對於DSS系統,可以分配50%給PGA使用,再引述一下前文的等式: 進一步歸納一下就是: 這是一個可以參考的數值,在為Oracle規劃記憶體使用時,我們必須清楚,如果Oracle耗用的記憶體過高,甚至超過了系統的實體記憶體,那麼系統的效能就會受到嚴重的影響,當系統執行任務時,如果沒有足夠的記憶體,那麼系統就會進行分頁或交換,以完成當前活動事務。
當系統執行分頁時,會將當前沒有使用的資訊從記憶體轉移到硬碟上,這樣就可以為當前需要記憶體的程式分配記憶體。如果頻繁發生分頁,系統效能就會嚴重降低,從而導致很多程式的執行時間變長。
當系統執行交換時,會將某些程式所分配的不活躍記憶體頁(根據LRU演算法)從記憶體轉移到硬碟上,這樣另一個活動程式就可以得到所需要的記憶體。交換基於系統迴圈時間。如果交換太過頻繁,系統甚至會出現當機。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-659605/,如需轉載,請註明出處,否則將追究法律責任。
·對於OLTP系統,PGA_AGGREGATE_TARGET=(
·對於DSS系統,PGA_AGGREGATE_TARGET=(
SGA+PGA *80%
也就是:
SGA_MAX_SIZE+PGA_AGGREGATE_TARGET <=
現在Oracle Database 11g引入了自動記憶體管理,這個公式得以進一步簡化:
MEMORY_TARGET <= MEMORY_MAX_TARGET <=
相關文章
- [20210126]探究oracle記憶體分配.txtOracle記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- Go記憶體分配和GC的理解Go記憶體GC
- [20210126]探究oracle記憶體分配3.txtOracle記憶體
- [20210126]探究oracle記憶體分配4.txtOracle記憶體
- JVM垃圾回收和記憶體分配策略JVM記憶體
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- 動態記憶體分配記憶體
- C語言的記憶體分配C語言記憶體
- C中的記憶體分配模型記憶體模型
- 記憶體分配策略中,堆和棧的區別記憶體
- Go高階特性 14 | 記憶體分配:new 和 make 的使用場景Go記憶體
- STM32記憶體結構介紹和FreeRTOS記憶體分配技巧記憶體
- java-方法記憶體分配Java記憶體
- go記憶體分配器Go記憶體
- java基礎-記憶體分配Java記憶體
- hadoop 記憶體分配規則Hadoop記憶體
- C語言-記憶體分配C語言記憶體
- 記憶體分配策略學習記憶體
- 深度理解glibc記憶體分配記憶體
- Netty 中的記憶體分配淺析Netty記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- JVM筆記(1.2)垃圾收集器和記憶體分配策略JVM筆記記憶體
- 【Java】 記憶體分配全面淺析Java記憶體
- JVM GC 與 記憶體分配策略JVMGC記憶體
- C++動態記憶體分配C++記憶體
- 記憶體分配問題處理記憶體
- mimalloc記憶體分配程式碼分析記憶體
- C程式記憶體的分配,const ,volatile,staticC程式記憶體
- [20191114]linux記憶體分配的討論.txtLinux記憶體
- new、delete、記憶體分配 的底層原理delete記憶體
- javascript堆疊記憶體分配的區別JavaScript記憶體
- MySQL 配置InnoDB的記憶體分配器MySql記憶體
- Python如何管理記憶體?記憶體分配機制是什麼?Python記憶體
- jvm:記憶體模型、記憶體分配及GC垃圾回收機制JVM記憶體模型GC
- 【Java學習筆記】垃圾收集器和記憶體分配策略Java筆記記憶體
- [20190202]使用smem查詢oracle記憶體使用.txtOracle記憶體