讀書筆記:深入解析oracle-第5章 記憶體管理
1、 PGA指的是程式全域性區(Program Global Area),是伺服器程式(Server Process)使用的一塊包含資料和控制資訊的記憶體區域,是非共享記憶體,所以pga中的記憶體結構不需要用latch來保護。
2、 PGA分為固定PGA和可變PGA(又分為會話記憶體和私有的SQL區(又分為永久區域和執行時區域))
3、 PGA是服務於程式的記憶體結構,包含程式資訊;而UGA是服務於會話的,包含的是會話的資訊。
4、 引數_use_realfree_heap設定為true時,oracle會為CGA(call global area呼叫全域性區)、UGA單獨分配堆,而不從PGA中分配,當設定了pga_aggregate_target後,它的值為true。
5、 Workarea_size_policy引數設為auto時,才會使用自動PGA管理功能。
6、 Sql在工作區中以3種方式執行
A、 optimal:至所有處理可以在記憶體中完成。
B、 onepass:大部分操作可以在記憶體中完成,但是需要使用到磁碟操作
C、 multipass:大量操作需要產生磁碟互動,效能極差。
7、 sga fixed size 部分是SGA中的固定部分,包含資料庫和例項的狀態等通用資訊,後臺程式需要訪問這部分資訊,不儲存使用者資料,通常只需要很小部分記憶體。
8、 SGA的設定在LINUX/UNIX上和一個作業系統核心引數shmmax有關。實際上shmmax核心引數定義的是系統允許的單個共享記憶體段的最大值,如果該引數設定小於SGA設定,那麼SGA會被分配多個共享記憶體段。通常推薦通過調整shmmax設定,將SGA限制在一個共享記憶體段中。
9、 記憶體不足的告警可能是因為資料庫異常關閉,後臺程式未正常退出,共享記憶體未及時釋放引起的,對於這種情況,可以通過ipcs命令找到共享記憶體段id(shared memory id),然後通過ipcrm命令可以強制釋放該共享記憶體段,完成這些特殊處理後,資料庫通常就可以正常啟動了。
10、 設定引數SGA_MAX_SIZE用以控制各緩衝池使用的記憶體總和,本質上是在程式中預先分配一段虛擬地址備用而不分配實體記憶體,目的是防止和私有地址段的衝突。
11、 自動的共享記憶體管理引入了一個新的後臺程式MMAN(Memory Manager).該程式用以動態調整記憶體元件。
12、 通過動態檢視v$sga_dynamic_components可以看到各動態元件調整的時間和調整型別等資訊。
13、 這是一個可以參考的數值,在為oracle規劃記憶體使用時,我們必須清楚,如果oracle耗用的記憶體過高,甚至超過了系統的實體記憶體,那麼系統的效能就會受到嚴重的影響,當系統執行任務時,如果沒有足夠的記憶體,那麼系統就會進行分頁或交換,以完成當前活動事務。
當系統執行分頁時,會將當前沒有使用的資訊從記憶體專移到硬碟上,這樣就可以為當前需要記憶體的程式分配記憶體。如果頻繁發生分頁,系統效能就會嚴重降低,從而導致很多程式的執行時間變長。
當系統執行交換時,會將某些程式所分配的不活躍記憶體頁(根據LRU演算法)從記憶體轉移到硬碟上,這樣另一個活動程式就可以得到所需要的記憶體。交際基於系統迴圈時間。如果交換太過頻繁,系統甚至會出現當機。
14、 關於作業系統,一般swap區的推薦值為2*RAM
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11088128/viewspace-697808/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讀書筆記:深入解析oracle-第4章 資料字典筆記Oracle
- 讀書筆記:深入解析oracle-第3章 引數及引數檔案筆記Oracle
- JVM讀書筆記之記憶體管理JVM筆記記憶體
- 讀書筆記:深入解析oracle-第2章 控制檔案與資料庫初始化筆記Oracle資料庫
- 《Windows核心情景分析》讀書筆記:windows記憶體管理Windows筆記記憶體
- 【Mysql】讀書筆記之--innodb_buffer_pool記憶體的管理MySql筆記記憶體
- 深入理解JVM讀書筆記一: Java記憶體區域與記憶體溢位異常JVM筆記Java記憶體溢位
- 【Oracle-記憶體管理】-Multiple Block SizesOracle記憶體BloC
- 《深入java虛擬機器》讀書筆記之Java記憶體區域Java虛擬機筆記記憶體
- 讀書筆記2-記憶體優化篇筆記記憶體優化
- JVM讀書筆記之java記憶體結構JVM筆記Java記憶體
- 【Oracle-記憶體管理】-Multiple I/O SlavesOracle記憶體
- Objective-C高階程式設計讀書筆記之記憶體管理Object程式設計筆記記憶體
- 《深入解析Oracle》第五章,記憶體管理Oracle記憶體
- 深入理解JVM讀書筆記二: 垃圾收集器與記憶體分配策略JVM筆記記憶體
- JVM讀書筆記之垃圾收集與記憶體分配JVM筆記記憶體
- 《深度探索c++記憶體模型》讀書筆記 (二)C++記憶體模型筆記
- 讀書筆記:深入解析oracle-第一章 資料庫的啟動和關閉筆記Oracle資料庫
- 讀書筆記——《軟體工程》第10~12章筆記軟體工程
- oracle-記憶體表(轉)Oracle記憶體
- 深入理解JVM讀書筆記五: Java記憶體模型與Volatile關鍵字JVM筆記Java記憶體模型
- 深入淺出node讀書筆記筆記
- 《深入淺出MySQL》讀書筆記MySql筆記
- 《深入java虛擬機器》讀書筆記之垃圾收集器與記憶體分配策略Java虛擬機筆記記憶體
- 《深入理解java虛擬機器》讀書筆記2(java記憶體區域與OOM)Java虛擬機筆記記憶體OOM
- 深入淺出Nodejs讀書筆記NodeJS筆記
- 《深入剖析Tomcat》讀書筆記(一)Tomcat筆記
- 《深入剖析Tomcat》讀書筆記(二)Tomcat筆記
- 第8章 管理共享記憶體記憶體
- 《深入理解Java虛擬機器》讀書筆記:垃圾收集器與記憶體分配策略Java虛擬機筆記記憶體
- 記憶體管理 記憶體管理概述記憶體
- 刀口上的管理--讀書筆記筆記
- 《Effective C++》第3章 資源管理(2)-讀書筆記C++筆記
- 《Effective C++》第3章 資源管理(1)-讀書筆記C++筆記
- 譯-Java記憶體管理白皮書Java記憶體
- 新書《記憶體資料管理》新書記憶體
- 《深入理解java虛擬機器》讀書筆記3(垃圾收集器與記憶體分配策略)Java虛擬機筆記記憶體
- MJiOS底層筆記--記憶體管理iOS筆記記憶體