記憶體_管理總結
linux下,以下兩個命令都可以檢視記憶體資訊,結果類似,但是在oracle中還是看下者為好,因為有PageTables、HugePages_Total等資訊
free -m
cat /proc/meminfo
MEMORY_MAX_TARGET:specifies
the maximum value to which a DBA can set the MEMORY_TARGET initialization
parameter
MEMORY_TARGET: specifies the Oracle system-wide usable memory. The database tunes memory to the MEMORY_TARGET value, reducing or enlarging the SGA and PGA as needed.
memory_max_target的值必須大於MEMORY_TARGET,否則會報錯ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET
ORACLE 資料庫從11g 版本開始,引入了一個自動記憶體管理(Automatic Memory Management) AMM特性,該特性需要更多的共享記憶體(/dev/shm),因此如果決定應用該特性的話, 必須要確保/dev/shm大於MEMORY_MAX_TARGET 和MEMORY_TARGET,MEMORY_MAX_TARGET 如果超過/dev/shm的大小,安裝會報錯ORA-00845,透過AMM這個功能DBA只需要設定memory_target一個引數就可以完成整個資料庫例項記憶體的配置,在11.2.0.2版本之前,DBCA建庫預設就是AMM管理。同樣如果你設定AMM後,也設定了SGA_TARGET、pga_aggregate_target等引數,那麼這些引數會作為最小值要求。AMM最大的問題是不能使用大頁記憶體。memery_target不等於0,就開啟了AMM
可以vi /etc/fstab修改/dev/shm這個共享記憶體檔案系統的大小:
tmpfs /dev/shm tmpfs defaults,size=XXG 0 0
針對於Oracle的記憶體分配方式,推薦在核心繫統上:配置PGA_AGGREGATE_TARGET、SGA_TARGET,併為buffer cache、shared pool、SORT_AREA_SIZE設定最小值的方式。AMM這種記憶體分配方式,由於不能使用大頁,建議不要去用。
如果記憶體足夠,想偷懶則配置MEMORY_TARGET,併為PGA_AGGREGATE_TARGET、SGA_TARGET設定最小值
SGA,PGA,UGA都是Oracle管理的記憶體區。
SGA(System Global Area),即系統全域性區,Oracle中最重要的記憶體區。
PGA(Process Global Area),即程式全域性區,一個程式的專用的記憶體區。
UGA(User Global Area),即使用者全域性區,與特定的會話相關聯。
專用伺服器連線模式,UGA在PGA中分配。
共享伺服器連線模式,UGA在SGA中的Large Pool中分配。
show parameter memory,一個memery_target和memory_max_target
AMM:memery_target不等於0,就開啟了AMM
memery_target=sga+pga
memery_target一般不超過作業系統實體記憶體的80%
如果memery_target設定為1G,sga設定為600M,pga設定為300M,則sga的範圍是600--700M(1G-300M),pga範圍是300--400(1G-600M)
如果memery_target設定為0,則必須手動設定sga和pga的大小,否則sga和pga都將是0
聯機事務中,sga佔memery_target的70%-80%,pga佔memery_target的20%-30%
非聯機事務,sga佔memery_target的50%-60%,pga佔memery_target的40%-50%
oracle11g設定了memory_target引數後,會自動設定sga和pga引數,已經實驗驗證
一開始memory_target為1500M,show parameter sga,看到sga為800M
修改memory_target為2500M,show parameter sga,看到sga為1500M
但是最好設定一下sga_target和pga_target的值,因為有sga_max時,sga_target就是下限值了
SGA
show parameter sga,一個sgq_target和sga_max_size
同理,sga_target=SHARED_POOL_SIZE+DB_CACHE_SIZE+LARGE_POOL_SIZE+JAVA_POOL_SIZE
如果sga_target設定為0,則必須手動設定shared pool、buffer等大小,否則shared pool、buffer等都將是0
ASMM:sga_target不等於0,就開啟了ASMM
如果memery_target=1G,開啟了AMM的同時,設定sga_target等於0,pga=500M,則sga的值範圍是(0-500M)
PGA
PGA_AGGREGATE_TARGET-此引數用來指定所有session總計可以使用最大PGA記憶體。這個引數可以被動態的更改。
SORT_AREA_SIZE,一個會話排序時能夠使用的最大記憶體值,當PGA自動管理時所有會話的工作區大小的調整都是自動的,在該模式下執行的所有會話都會忽略SORT_AREA_SIZE引數的值,但是會把該值當成最小值,預設最大隻能用到1G來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2105905/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JVM記憶體管理——總結篇JVM記憶體
- Linux記憶體管理複習總結Linux記憶體
- linux記憶體管理學習總結Linux記憶體
- iphone 記憶體管理的一些總結iPhone記憶體
- Linux 記憶體管理知識學習總結Linux記憶體
- JVM記憶體模型總結JVM記憶體模型
- 記憶體管理 記憶體管理概述記憶體
- CUDA面記憶體用法總結記憶體
- oracle記憶體結構與管理Oracle記憶體
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- [Virtualization]ESXi體系結構與記憶體管理(二)控制記憶體分配記憶體
- [Virtualization]ESXi體系結構與記憶體管理(三)控制記憶體分配記憶體
- 【記憶體管理】記憶體佈局記憶體
- JVM之記憶體區域總結JVM記憶體
- Java記憶體模型學習總結Java記憶體模型
- Android 記憶體洩漏總結Android記憶體
- Java記憶體模型深度解析:總結Java記憶體模型
- Sql Server實體記憶體及虛擬記憶體設定的總結SQLServer記憶體
- 記憶體管理記憶體
- 記憶體管理兩部曲之實體記憶體管理記憶體
- 記憶體使用總結篇 -- Android 記憶體優化第五彈記憶體Android優化
- Go:記憶體管理與記憶體清理Go記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- Aerospike的bin記憶體管理--即列記憶體管理ROS記憶體
- 垃圾回收與記憶體分配——總結篇記憶體
- oracle 記憶體分配和調優 總結Oracle記憶體
- Js記憶體洩露問題總結JS記憶體洩露
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- Linux 記憶體管理:記憶體對映Linux記憶體
- 記憶體管理-swMemoryGlobal記憶體
- OC記憶體管理記憶體
- iOS 記憶體管理iOS記憶體
- JavaScript 記憶體管理JavaScript記憶體
- MySQL記憶體管理MySql記憶體
- Oracle 記憶體管理Oracle記憶體
- JavaScript記憶體管理JavaScript記憶體