如何設定ASH buffer大小

來源:互聯網
上載者:User

如何設定ASH buffer大小

Ash Buffer是SGA裡的一塊迴圈使用的記憶體地區,用於存放MMON捕捉到的active session資訊,MMNL每隔60min將Ash buffer的內容經過過濾後dump到AWR,對應的視圖是DBA_HIST_ACTIVE_SESS_HISTORY,以騰出Ash buffer空間用於之後的採集。Ash Buffer的大小在instance啟動時就已經決定了,並且在instance運行期間不能被動態調整,那麼Ash Buffer的大小是由哪些因素決定的?
關於ASH buffer的大小MOS 243132.1上有如下描述
Size of ASH Circular Buffer = Max [Min [ #CPUs * 2 MB, 5% of Shared Pool Size, 30MB ], 1MB ]

###看下實際環境裡和ash buffer有關的參數
SQL> show parameter cpu_count


 NAME                                TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 cpu_count                            integer    16


 SQL> show parameter shared_pool_size
 NAME                                TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 shared_pool_size                    big integer 1312M

---計算一下ash buffer應該為多少大小
Max [Min [ 16 * 2 MB, 5%*1312M, 30MB ], 1MB ]=30MB


---實際Ash buffer大小可以從v$sgastat、v$ash_info獲得,均為32MB,和公式提供的稍有差別,選擇32MB作為Ash Buffer
 select * from v$sgastat where name='ASH buffers';
 POOL        NAME                            BYTES
 ------------ -------------------------- ----------
 shared pool  ASH buffers                  33554432


 select total_size,fixed_size,sampling_interval from v$ash_info;
 TOTAL_SIZE FIXED_SIZE SAMPLING_INTERVAL
 ---------- ---------- -----------------
  33554432  33554432              1000


###更改一下cpu_count
 alter system set cpu_count=8 scope=spfile;


 startup force


 show parameter cpu_count
 NAME                                TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 cpu_count                            integer    8


---按照公式Size of ASH Circular Buffer = Max [Min [ #CPUs * 2 MB, 5% of Shared Pool Size, 30MB ], 1MB ]計算
Ash buffer=Max [Min [ 8 * 2 MB, 5%*1312M, 30MB ], 1MB ]=16MB


---下面的查詢結果應驗了上面的計算
select total_size,fixed_size,sampling_interval from v$ash_info;
 TOTAL_SIZE FIXED_SIZE SAMPLING_INTERVAL
 ---------- ---------- -----------------
  16777216  16777216              1000
 
 select * from v$sgastat where name='ASH buffers';
 POOL        NAME                            BYTES
 ------------ -------------------------- ----------
 shared pool  ASH buffers                  16777216 


###"_ash_size"隱含參數控制ash buffer的大小
 公式Size of ASH Circular Buffer = Max [Min [ #CPUs * 2 MB, 5% of Shared Pool Size, 30MB ], 1MB ]裡的1MB是_ash_size的預設值
---_ash_size的預設值為1MB
 select ksppinm,ksppstvl from x$ksppi x, x$ksppcv y where (x.indx = y.indx) and ksppinm like '_ash_size%'


 KSPPINM                        KSPPSTVL
 ------------------------------ ------------------------------
 _ash_size                      1048618


---我們把_ash_size改大,改成64MB
 alter system set "_ash_size"=67108864 scope=spfile;


 startup force


---計算一下此時的Ash buffer值
ASH Circular Buffer = Max [Min [ 8 * 2 MB, 5%*1315M, 30MB ], 64MB ]=64MB


---下面的查詢結果應驗了上面的計算
SQL> select total_size,fixed_size,sampling_interval from v$ash_info;


 TOTAL_SIZE FIXED_SIZE SAMPLING_INTERVAL
 ---------- ---------- -----------------
  67108864  67108864              1000


 SQL> select * from v$sgastat where name='ASH buffers';


 POOL        NAME                            BYTES
 ------------ -------------------------- ----------
 shared pool  ASH buffers                  67108864


因此Ash Buffer的計算公式可以修正為
Size of ASH Circular Buffer = Max [Min [ #CPUs * 2 MB, 5% of Shared Pool Size, 30MB ], _ash_size ]
如果要調整ash buffer的大小,需要修改_ash_size參數,且確保_ash_size> Min [ #CPUs * 2 MB, 5% of Shared Pool Size, 30MB ]

在CentOS 6.4下安裝Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虛擬機器中安裝步驟

Debian 下 安裝 Oracle 11g XE R2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.