SHARED_POOL_RESERVED_SIZE引數的設定及作用
SHARED_POOL_RESERVED_SIZE引數的設定及作用
shared_pool_reserved_size:
該引數指定了保留的共享池空間,用於滿足將來的大的連續的共享池空間請求。當共享池出現過多碎片,請求大塊
空間會導致Oracle大範圍的查詢並釋放共享池記憶體來滿足請求,由此可能會帶來較為嚴重的效能下降,設定合適的
shared_pool_reserved_size引數,結合_shared_pool_reserved_min_alloc引數可以用來避免由此導致的效能下降。
這個引數理想值應該大到足以滿足任何對RESERVED LIST的記憶體請求,而無需從共享池中重新整理物件。這個引數的
預設值是shared_pool_size的5%,通常這個引數的建議值為shared_pool_size引數的10%~20%大小,最大不得
超過shared_pool_size的50%。
同樣地,在trace檔案中,可以找到關於保留列表(RESERVED LIST)的記憶體資訊:
RESERVED FREE LISTS:
Reserved bucket 0 size=16
Reserved bucket 1 size=4400
Reserved bucket 2 size=8204
Reserved bucket 3 size=8460
Reserved bucket 4 size=8464
Reserved bucket 5 size=8468
Reserved bucket 6 size=8472
Reserved bucket 7 size=9296
Reserved bucket 8 size=9300
Reserved bucket 9 size=12320
Reserved bucket 10 size=12324
Reserved bucket 11 size=16396
Reserved bucket 12 size=32780
Reserved bucket 13 size=65548
Chunk 41000050 sz= 212888 R-free " "
Chunk 41400050 sz= 212888 R-free " "
Chunk 41800050 sz= 212888 R-free " "
Chunk 41c00050 sz= 212888 R-free " "
Chunk 42000050 sz= 212888 R-free " "
Chunk 42400050 sz= 212888 R-free " "
Chunk 42800050 sz= 212888 R-free " "
Chunk 42c00050 sz= 212888 R-free " "
Chunk 43000050 sz= 212888 R-free " "
Chunk 43400050 sz= 212888 R-free " "
Chunk 43800050 sz= 212888 R-free " "
Chunk 44000050 sz= 212888 R-free " "
Total reserved free space = 2554656
_shared_pool_reserved_min_alloc這個引數的值控制保留記憶體的使用和分配。如果一個足夠尺寸的大塊記憶體請求在共享池空閒列表(FREE LIST)中沒能找到,記憶體就從保留列表(RESERVED LIST)中分配一塊比這個值大的空間。
在不同的版本中,該引數的預設值一直都是4400,以下輸出來自Oracle 11gR1版本:
> @GetHidPar
Enter value for par: shared_pool_reserved_min_alloc
old 4: AND x.ksppinm LIKE '%&par%'
new 4: AND x.ksppinm LIKE '%shared_pool_reserved_min_alloc%'
NAME VALUE DESCRIB
----------------------------------- ---------- ----------------------------------------------------------------------
_shared_pool_reserved_min_alloc 4400 minimum allocation size in bytes for reserved area of shared pool
這個引數預設的值對於大多數系統來說都足夠了。如果系統經常出現ORA-04031錯誤都是請求大於4400的記憶體塊,那麼就
可能需要增加shared_pool_reserved_size引數設定。
而如果主要的引發LRU合併、老化並出現ORA-04031錯誤的記憶體請求在4100~4400bytes之間,
那麼降低_shared_pool_reserved_min_alloc同時適當增大SHARED_POOL_RESERVED_SIZE引數值通常會有所幫助。
設定_shared_pool_reserved_min_alloc=4100可以增加Shared Pool成功滿足請求的機率。需要注意的是,這個引數
的修改應對結合Shared Pool Size 和 Shared Pool Reserved Size的修改。設定_shared_pool_reserved_min_alloc=4100
是經過證明的可靠方式,不建議設定更低。
查詢v$shared_pool_reserved檢視可以用於判斷共享池問題的引發原因,以下查詢來自一個業務系統,注意系統出現過2次的
請求失敗,最後一次請求的記憶體塊大小是3896Bytes。由於這個環境沒有報ORA-04031錯誤,所以不對_shared_pool_reserved_min_alloc
引數進行修改。
> select free_space,avg_free_size,used_space,avg_used_size,request_failures,last_failure_size
2 from v$shared_pool_reserved;
FREE_SPACE AVG_FREE_SIZE USED_SPACE AVG_USED_SIZE REQUEST_FAILURES LAST_FAILURE_SIZE
---------- ------------- ---------- ------------- ---------------- -----------------
44406648 727977.836 86640 1420.32787 2 3896
如果request_failures > 0 並且 last_failure_size > _shared_pool_reserved_min_alloc,那麼ORA-04031錯誤就可能是因
為共享池保留空間缺少連續空間所致。要解決這個問題,可以考慮加大_shared_pool_reserved_min_alloc來降低緩衝進共享
池保留空間的物件數目,並增大shared_pool_reserved_size 和 shared_pool_size來加大共享池保留空間的可用記憶體。
如果request_failures > 0 並且 last_failure_size < _shared_pool_reserved_min_alloc,那麼是因為在庫高速緩衝缺少
連續空間導致ORA-04031錯誤。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29523859/viewspace-1331182/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 手工指定CHANNEL與設定PARALLELISM引數的異同以及FILESPERSET引數的作用Parallel
- Linux上shmmax引數的設定及含義LinuxHMM
- 網路卡引數查詢及設定工具ethtool
- Linux上shmmax引數的設定及含義(轉)LinuxHMM
- MySQL 設定變數的副作用薦MySql變數
- Oracle CSS的引數設定 心跳時間設定OracleCSS
- vsftpd設定引數FTP
- RAC 特定引數設定
- 兩個引數設定
- 對引數FAST_START_MTTR_TARGET = 0 的誤解及設定AST
- create table中的buffer pool 設定 KEEP 及CACHE 引數的聯絡及區別
- curl CURLOPT_WRITEFUNCTION 的引數設定Function
- Metasploit設定LHOST引數技巧
- Metasploit設定VERBOSE引數技巧
- pandas引數設定小技巧
- Metasploit設定HttpTrace引數技巧HTTP
- tomcat vm 引數設定Tomcat
- JVM常見引數設定JVM
- JVM引數設定大氣JVM
- SAP系統引數設定
- SAP 系統引數設定
- ORACLE JOB INTERVAL引數設定Oracle
- chrome啟動引數設定Chrome
- 設定NLS_LANG引數
- 函式定義、函式的引數、函式的預設引數函式
- MySQL的配置檔案的引數設定MySql
- LINUX下安裝ORACLE的常用設定引數及環境變數說明LinuxOracle變數
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- ARCHIVE_LAG_TARGET引數的作用Hive
- 2.7.11 檢視引數設定的方法
- 閃回與歸檔引數的設定
- 分割槽表中的maxvalue引數設定
- REMOTE_LOGIN_ PASSWORDFILE的引數設定REM
- Oracle安裝時shmmax引數的設定OracleHMM
- 【SQL 效能優化】引數設定SQL優化
- SAP 系統引數設定(zt)
- DBReplicator設定setpath.bat引數BAT
- javascript為函式設定預設引數JavaScript函式