ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ASMM (Auto Shared Memory Manangement) 自动共享内存管理

ASMM (Auto Shared Memory Manangement) 自动共享内存管理

Linux操作系统 作者:贺子_DBA时代 时间:2015-01-10 21:47:51 0 删除 编辑

ASMM (Auto Shared Memory Manangement)

Oracle只需要设置一个SGA总大小,10g会根据系统负载变化调节各内存组件大小。

开启ASMM, 需要设置sga_target 及 statistics_level=typical/all 即可(basic表示关闭asmm)。 

ASMM只调整5个主要的内存池: buffer cache, shared pool, large pool, java pool, stream pool,
其他仍然需要手工调整(比如 log buffer,db_keep_cache_size 等)。
比如log buffer=3M, db_keep_cache_size 为100M , SGA大小为800M, 那么可以自由调整的5个内存池
的中总大小是 800-3-100=697M . 

MMAN(Memory Manager后台进程):  每隔很短时间询问Oracle各内存组件advisor(顾问),然后根据建议
值自动调整各内存组件,如果使用spfile还会将顾问得出的建议值写入spfile(参数以两个下划线开头
__), 作为下次启动值大小。

如果启动了ASMM, 又手工设置了某参数为非零,Oracle会以手工设置的值为自动调整的最小值。
例如,手工设置了60M, 而MMAN自动调整的 __shared_pool_size为150M, 60M变成ASMM下共享内存的下限。
若手工设置200M, 则shared pool立即扩展,从__shared_pool_size=150M扩展到200M, 同时200M作为下限。
相关视图:  v$sga_dynamic_components  . 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29654823/viewspace-1397523/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
10年数据库管理员从业经历,熟悉Oracle、mysql、tidb、oceanbase、redis、 mongodb 、python等技术栈,持有11g ocm 、mysql 5.7 ocp 、tidb 5.0 ptcp、tidb 6.0 ptca、oceanbase obcp等

注册时间:2014-05-12

  • 博文量
    327
  • 访问量
    2148952