Goldengate Cache Manager(CACHEMGR)

Oracle GoldenGate的Cache Manager负责管理未提交事务的虚拟内存和临时磁盘空间。其特点是内部自动调整,由操作系统控制内存,且在软限制内按需分配。当缓存超过CACHESIZE时,超出部分的事务会被写入磁盘。本文讨论了Cache Manager的作用、特点、计算所需虚拟内存的方法以及统计信息分析,旨在帮助理解如何调整和优化Goldengate的内存使用。
摘要由CSDN通过智能技术生成
一.主要作用
从Oracle官方文档中看来,CACHEMGR参数主要用于控制存放未提交事务的虚拟内存(virtual memory应该是指的swap/paging space空间)和临时磁盘空间。所有的数据存放在叫做global cache(在报告中显示的是super pool)的虚拟内存池中,当数据库接收到commit/rollback之后这些cache里面的内容才会写到trail文件中。global cache中包含以下子虚拟池(详细内容见统计内容分析):
1).一个虚拟池用于存放BLOB等大对象的池子;
2).每个log reader thread一个虚拟池用于存放其他事务数据.

每个sub-pool中都有用于存放事务信息的buffer,原话:Within each sub-pool, individual buffers are allocated from the globalcache. Each buffer contains information that is relative to a transaction that is being processed by Oracle GoldenGate.

二.特点
官方文档中 多次提到进程使用的内存不是由OGG自己控制的,而是由操作系统进行控制的,它具有的特点和和限制有:
1).Goldengate的cache manager是内部自动控制和调整的,一般不需要人为调整;
2).Goldengate合理调用操作系统内存管理函数,尽量回收old buffer而不将内存page out到磁盘,如果必须要page out的时候也将很少用到的buffer交换到磁盘;
3).Goldengate只会在soft limit(cachesize)内按需划分虚拟内存( 不会划分物理内存但是实际测试效果是消耗的物理内存,所以想控制GG消耗的内存可以从此入手),且System calls to increase the cache size are made only as a last resort and, when used, are always followed by the release of virtual memory back to the system(意思:提升cache size往往是最终的一种手段,并且在用完之后会及时还到操作系统)。
4).如果系统层面有相关的资源限制,cachemgr设置的值同样会受到系统配置的限制;
5). GG中page out的规则是:当使用的CACHE超过CACHESIZE时会将超过CACHEPAGEOUTSIZE的事务调换到磁盘,但是当这些事务都被调到磁盘后CACHE使用量还超过CACHESIZEMAX的话,其他任何需要继续申请资源的事务都会调到磁盘。只有当CACHESIZE掉到比CACHESIZEMAX小之后CACHEPAGEOUTSIZE才生效。

三.如何计算所需虚拟内存
计算前我们需要查看goldengate的report文件,检查系统当前运行的报告用于作为计算所需虚拟内存的参考。但是从实际上来看,在未设置CACHEMGR参数时所获取到的值是基于操作系统总资源的一个固定值,不具有参考价值。例如:
某客户的ext进程的rpt文件
CACHEMGR virtual memory values (may have been adjusted)
CACHESIZE:                               64G(实际系统内存就120GB,cache可用的软限制)
CACHEPAGEOUTSIZE (normal):                8M(当实际CACHE超过CACHESIZE时超过8M的事务会在需要page out到磁盘时优先被page out)
PROCESS VM AVAIL FROM OS (min):         128G(进程可从OS获取的最大VM,系统内存和SWAP经过一定计算后获取)
CACHESIZEMAX (strict force to disk):     96G(由CACHESIZE和PROCESS VM AVAIL FROM OS计算得来的,表示CACHE中最多存放的事务数据量,超过该值则所有申请空间事务写到tmp文件)

同一GG实例上datapump进程的rpt文件
CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE:                         64K
CACHESIZE:                                8G
CACHEBUFFERSIZE (soft max):               4M
CACHEPAGEOUTSIZE (normal):                4M
PROCESS VM AVAIL FROM OS (min):          16G
CACHESIZEMAX (strict force to disk):  13.99G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值