GoldenGate通过CACHEMGR限制内存利用

本文转载自:http://blog.itpub.net/8242091/viewspace-733599/

 

今天客户一个即将上线的数据库报告无法连接了,马上登录上去看,系统大量分页,77G内存的机器,交换分区利用率达到70%,还一直在增加

马上svmon -U看了下,发现ggs用户用了32GB内存,马上意识到ogg有问题,立马停掉。内存使用一下就降下来了

检查extract进程日志,lag延迟了2小时,检查生成的trail,发现最近2个小时生成的trail极多

尝试启动extract,发现主机内存马上就上去了。查看了长事务,发现还比较多。立马重新停掉

想到OGG的内存限制应该是操作系统用户内存限制

马上把ggs用户的内存限制设置为1GB,内存还是继续消耗的很快

尝试了128MB限制,尝试设置硬限制,还是没办法,内存吃的飞快。

最后查看文档,发现通过cachemgr可以设置用来cache没有提交的数据的虚拟内存大小和临时空间

虽然文档不建议设置,由系统自动管理。但是没办法,不设置内存吃的太快了

-- 未设置前:
CACHEMGR virtual memory values (may have been adjusted)                      
CACHESIZE:                               64G                                 
CACHEPAGEOUTSIZE (normal):                8M                                 
PROCESS VM AVAIL FROM OS (min):         128G                                 
CACHESIZEMAX (strict force to disk):     96G       

-- 设置 CACHEMGR CACHESIZE 4GB
CACHEMGR virtual memory values (may have been adjusted)
CACHESIZE:                                4G
CACHEPAGEOUTSIZE (normal):                8M
PROCESS VM AVAIL FROM OS (min):           8G
CACHESIZEMAX (strict force to disk):   6.91G

CACHESIZE:EXTRACT进程可用的用于缓存未提交的事务数据的初始化分配的VM容量。通过CACHESIZE选项指定
CACHEPAGEOUTSIZE:事务数据将被考虑来交换到硬盘的阀值。通过CACHEPAGEOUTSIZE选项控制
PROCESS VM AVAIL FROM OS:进程可以使用的VM的容量的近似值,默认比系统物理内存+交换分区容量略低,一般为CACHESIZE的两倍
CACHESIZEMAX:指定进行CACHEPAGEOUTSIZE时的阀值,超过该值进行长事务的PAGEOUT,低于该值停止PAGEOUT

总的来说:
EXTRACT启动时,会分配CACHESIZE大小的VM来缓存事务数据
能够用来缓存事务数据的VM的大小,为PROCESS VM AVAIL FROM OS
当VM使用达到CACHESIZEMAX时,考虑将数据数据大于CACHEPAGEOUTSIZE的事务pageout入磁盘

通过设置CACHEMGR CACHESIZE 可以来控制OGG进程的内存使用
通过send extract extxz, CACHEMGR CACHESTATS,可以看当前进程的vm使用量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值