最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何设定ASHbuffer大小

来源:动视网 责编:小采 时间:2020-11-09 13:16:26
文档

如何设定ASHbuffer大小

如何设定ASHbuffer大小:Ash Buffer是SGA里的一块循环使用的内存区域,用于存放MMON捕捉到的active session信息,MMNL每隔60min将Ash buffer的内容经过过 Ash Buffer是SGA里的一块循环使用的内存区域,用于存放MMON捕捉到的active session信息,MMNL每隔60
推荐度:
导读如何设定ASHbuffer大小:Ash Buffer是SGA里的一块循环使用的内存区域,用于存放MMON捕捉到的active session信息,MMNL每隔60min将Ash buffer的内容经过过 Ash Buffer是SGA里的一块循环使用的内存区域,用于存放MMON捕捉到的active session信息,MMNL每隔60


Ash Buffer是SGA里的一块循环使用的内存区域,用于存放MMON捕捉到的active session信息,MMNL每隔60min将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;
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;
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;


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

文档

如何设定ASHbuffer大小

如何设定ASHbuffer大小:Ash Buffer是SGA里的一块循环使用的内存区域,用于存放MMON捕捉到的active session信息,MMNL每隔60min将Ash buffer的内容经过过 Ash Buffer是SGA里的一块循环使用的内存区域,用于存放MMON捕捉到的active session信息,MMNL每隔60
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top