asmm 从头论-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3502918
  • 博文数量: 718
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7790
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(718)

文章存档

2024年(4)

2023年(74)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2022-01-18 22:11:26

10g开始自动内存管理,设置sga_target=4g即可实现自动分配高速缓存和共享池大小,ok,直到遇到了ora-4033。
设置streams_pool_size时,提示这个异常,那么到底当前环境能够调整为多大?

从头看。
asmm要想生效,前提条件是由两个参数决定:
statistics_level=typical or all
sga_target > 0

当然最小的sga至少得3个内存粒度,按设计最小内存粒度是4m(148495.1),因此这个target至少得12m。如下分配:
1个用于fixed sga (includes redo buffers)
1个用于buffer cache
1个用于shared pool

内存粒度大小947152.1


12c后
当然要排除掉imm部分(2658593.1)。
测试环境粒度应该是16m,但却显示4m(不解),而实际计算时得按16m做统计,见下文。

sga动态调整部分涉及:
db_cache_size,shared_pool_size,streams_pool_size,large_pool_size,java_pool_size
固定不动的内存是:
db_nk_cache_size, fixed sga, log_buffer

sga的最大值是sga_max_size参数(天花板)

通常将sga_max_size与sga_target两个参数的值设置为相同。使用spfile的库,sga_target可以动态调整,这个例子中从1000m调大到1200m很容易理解,但是也不一定能实现,要依赖v$sga_dynamic_free_memory中的信息来判断,下图是刚重启实例,看起来没问题。
有时可能是还没有释放,导致并不一定能获取到整200m

sga_target想从1000m调小为800m可行吗?
需要依赖当前动态组件的大小。

  1. col type for a12
  2. col component for a30

  3. select component, current_size/1024/1024 "current_size", min_size/1024/1024 "min_size", user_specified_size/1024/1024 "user_specified_size" from v$sga_dynamic_components;



这里看到了一个有趣的现象,我故意将db_cache_size设置的过小,才给8m,但是数据库最低也给了两个granule,即16m*2=32m。

最小sga计算如下:
244(shared pool) 128(large pool) 256(streams pool) 32(buffer cache) 48(shared io pool) 16(一个粒度用于sga的固定部分
再低一点儿也不行。

再看看剩余sga内存:

1196比1200还差4m,不知道谁没释放,先不管了。

回到问题之初:sga内部组件可以调整多大?

通常调大需求较多,依赖以下公式:
sga_target - ((sum(min_size for other auto-tuned parameters) (current_size for manual parameters) (size allocated for fixed parameters))

翻译一下:
某个组件可用内存=sga_target - 自动调整组件最小值合计 - 手工设置的当前值 - 一个粒度

举例:
当前sga是844m


想调大共享池大小,先看当前各组件值:

因此共享池可以调整的大小是:844-128-256-48-16=364m
想多给一点都不行。

参考:295626.1
阅读(5899) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图