Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GOLDENGATE内存管理以及如何正确设置内存参数

GOLDENGATE内存管理以及如何正确设置内存参数

作者头像
徐靖
发布于 2020-08-03 15:50:49
发布于 2020-08-03 15:50:49
2.6K0
举报
文章被收录于专栏:DB说DB说

1、goldengate如何管理内存

首先要说明是goldengate管理的内存不是物理内存,管理只是virtual memroy和swap disk,这个被称为cachesize management(COM).当goldengate进程启动后,COM向操作申请虚拟内存空间(不是真正物理内存,操作系统使用真正使用时候才会分配的机制来提高内存使用效率),只有COM真正需要实际内存空间,操作系统才会分配内存(分配内存空间也不是COM申请全部虚拟地址空间)

其次是swap disk空间,当goldengate进程达到限制大小或者操作系统物理内存不够时候,会进行相应分页操作,将内存数据刷入磁盘空间,这个时候工作效率会降低。

2、查看goldengate进程使用内存情况

通过如下命令查看进程使用内存情况:

1、send extract/replicat group cachemgr cachestats

通过这个命令查看当前进行使用虚拟内存是121.50M,cache size是512M(这个是2的幂次方大小),cache force paging这个是当缓存数据大小超过785m时候,强制进行分页(swap),因为goldengate只复制提交数据,没有提交数据或者长事务必须进行缓存,当系统存在大量大事务或者没有提交事务时,为了保证系统稳定,将没有提交数据缓存到本地磁盘(实现临时存储,goldengate BR参数也会将事务保存在文件系统,主要为了恢复,必须重复读取归档日志--ORACLE extract才有这个功能)

CACHE OBJECT MANAGER statistics

CACHE MANAGER VM USAGE

vm current = 121.50M vm anon queues = 121.50M

vm anon in use = 0 vm file = 0

vm used max = 121.50M ==> CACHE BALANCED ------>使用虚拟内存

CACHE CONFIGURATION

cache size = 512M cache force paging = 785M --

buffer min = 64K buffer max (soft) = 4M

pageout eligible size = 4M

2、linux平台可以如下命令查看:

ps -C extract -O rss |awk '{print $2/1024, "MB", $8}'

3、goldengate内存消耗造成问题

根据oracle goldengate官方文档,oracle是不建议自己调整

CACHEMGR CACHESIZE,因为goldengate会根据操作系统情况自动进行优化与调整相应参数(这个基于现在主机内存内存都很大情况下),看到朋友说:

a:golengate 进程把操作系统所有内存和虚拟内存全部消耗完了导致系统性能问题甚至宕机.

b:自己调整goldengate cachemgr cachesize后系统变慢甚至系统hang,关闭goldengate进行后系统恢复.

4、如何对goldengate内存进行管理与优化

首先我们为什么需要对goldengate内存进行优化和管理,那边我们需要搞清楚,goldengate占用内存取决那些因素:

a:goldengate缓存没有提交数据大小--这个与应用设计、OLTP还是OLAP、事务大小、数据写入方式等--这个不好控制

b:goldengate 实例的进程数,一个进程需要25-55M物理内存大小--这个也可以进行控制,一般不会太多

c:系统可用内存以及swap空间---这个是硬限制

优化建议:

对于系统有富裕内存,可以进行相应cachemgr设置,对于系统内存不足,不建议设置cachemgr,因为如果本身内存不足,设置cachesize很大反而会导致系统性能问题,因为系统本身没有足够内存,设置反而破坏goldengate自动优化机制.

下面是一个系统内存使用率比较高系统,设置cachemgr参数与没有设置cachemgr时候对比情况,配置cachemgr cachesize后业务高峰期系统很卡,注释参数后系统恢复正常

系统自动优化是512M,自己配置是4G.业务高峰期的话,ogg把处理大量没有提交事务,导致消耗系统内存,数据库处理事务因为内存问题导致业务变慢.

--设置cachemgr cachesize 3g

CACHE CONFIGURATION

cache size = 4G cache force paging = 6.91G

buffer min = 64K buffer max (soft) = 8M

pageout eligible size = 8M

--采用默认值的输出结果:

CACHE CONFIGURATION

cache size = 512M cache force paging = 785M

buffer min = 64K buffer max (soft) = 4M

pageout eligible size = 4M

[注意点】

goldengate使用内存后,很难被释放给操作,在有些情况可以被操作回收,所有看到ogg内存是1G升级到5G,此时数据库没有事务处理,ogg使用内存也不会被释放给操作系统。

5、如何通过cachemgr cachestats来设置合理cachesize

主要包括分配虚拟内存,cache size,请求分配内存区域,缓存事务大小分配区域,主要通过查看CACHE Transaction Stats,CACHE File Caching 来查看数据被刷入磁盘情况来判断实际事务情况以及使用swap情况

RUNTIME STATS FOR SUPERPOOL

CACHE Transaction Stats

trans active = 0 max concurrent = 18

non-zero total = 4.02M trans total = 6.53M

CACHE File Caching

filecache rqsts = 0 bytes to disk = 0

file retrieves = 0 objs filecached = 0

queue entries = 0 queue processed = 0

queue entry not needed = 0 queue not signaled = 0

fc requesting obj = 0

CACHE MANAGEMENT

buffer links = 52.77K anon gets = 0

forced unmaps = 0 cnnbl try = 0

cached out = 0

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 udapp 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OGG "Loading data from file to Replicat"table静态数据同步配置过程
OGG “Loading data from file to Replicat”table静态数据同步配置过程
全栈程序员站长
2022/01/11
3690
OGG|Oracle GoldenGate 基础知识介绍(二)
目前,比较常用的数据同步软件有 CDC(Oracle Change Data Capture 变更数据捕获)、迪思杰(DSG)、九桥软件 DDS、OGG 、Debezium、Flink CDC、阿里 dataX 等等,今天在来聊聊 OGG 基础知识(注意:以下为两年前的旧文分享)。之前也有关于 OGG 基础知识的介绍文章,感兴趣的可点此链接查看。
JiekeXu之路
2023/09/06
3.4K0
OGG|Oracle GoldenGate 基础知识介绍(二)
Linux 了解内存使用
目前大部分的操作系统和应用程序并不需要16EB( 2^64 )如此巨大的地址空间, 实现64位长的地址只会增加系统的复杂度和地址转换的成本, 带不来任何好处. 所以目前的x86-64架构CPU都遵循AMD的Canonical form, 即只有虚拟地址的最低48位才会在地址转换时被使用, 且任何虚拟地址的48位至63位必须与47位一致(sign extension). 也就是说, 总的虚拟地址空间为256TB( 2^48 )
黄规速
2022/04/14
3.8K0
Linux 了解内存使用
Linux内存管理
谈到内存管理,最先想到的就是分段和分页机制。计算机刚出现的时候,并没有这些,刚开始是直接使用的物理地址,也就是代码中操作的地址是可以直接和物理地址对应上的,可是后来随着多进程调度的需求,以及有限的物理内存,于是人们就开始做规定,比如对于一块内存,某个范围是属于内核,然后另外一个范围属于进程A,再另外一个范围属于进程B,如下图所示
一只小虾米
2023/03/19
14.4K0
Linux内存管理
一步一图带你深入理解 Linux 物理内存管理
在上篇文章 《深入理解 Linux 虚拟内存管理》 中,笔者分别从进程用户态和内核态的角度详细深入地为大家介绍了 Linux 内核如何对进程虚拟内存空间进行布局以及管理的相关实现。在我们深入理解了虚拟内存之后,那么何不顺带着也探秘一下物理内存的管理呢?
bin的技术小屋
2023/10/30
1.8K0
一步一图带你深入理解 Linux 物理内存管理
Linux:/proc/meminfo参数详细解释
/proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比”free”等命令要丰富得多,然而真正理解它并不容易,比如我们知道”Cached”统计的是文件缓存页,manpage上说是“In-memory cache for files read from the disk (the page cache)”,那为什么它不等于[Active(file)+Inactive(file)]?AnonHugePages与AnonPages、HugePages_Total有什么联系和区别?很多细节在手册中并没有讲清楚,本文对此做了一点探究。
233333
2023/07/24
1.9K0
Linux:/proc/meminfo参数详细解释
五万字 | 深入理解Linux内存管理
作者简介: 程磊,一线码农,在某手机公司担任系统开发工程师,日常喜欢研究内核基本原理。 1.1 内存管理的意义 1.2 原始内存管理 1.3 分段内存管理 1.4 分页内存管理 1.5 内存管理的目标 1.6 Linux内存管理体系 2.1 物理内存节点 2.2 物理内存区域 2.3 物理内存页面 2.4 物理内存模型 2.5 三级区划关系 3.1 Buddy System 3.1.1 伙伴系统的内存来源 3.1.2 伙伴系统的管理数据结构 3.1.3 伙伴系统的算法逻辑 3.1.4 伙伴系统的接口 3.1
刘盼
2022/08/26
4.3K0
五万字 | 深入理解Linux内存管理
Linux 内存管理
      程序到运行主要经过程序(外存)编译,链接,装入(内存)。《程序如何运行:编译、链接、装》:
黄规速
2022/06/15
8.3K0
Linux 内存管理
聊聊 Linux 的内存统计
本文主要分析 Linux 系统内存统计的一些指标以及进程角度内存使用监控的一些方法。
程序员小强
2020/01/17
6.7K1
聊聊 Linux 的内存统计
全民K歌内存篇2——虚拟内存浅析
《全民K歌内存篇1——线上监控与综合治理》 《全民K歌内存篇2——虚拟内存浅析》 《全民K歌内存篇3——native内存分析与监控》 一、简介 在多任务操作系统中,每个进程都拥有独立的虚拟地址空间,通过虚拟地址进行内存访问主要具备以下几点优势: 进程可使用连续的地址空间来访问不连续的物理内存,内存管理方面得到了简化。 实现进程与物理内存的隔离,对各个进程的内存数据起到了保护的作用。 程序可使用远大于可用物理内存的地址空间,虚拟地址在读写前不占用实际的物理内存,并为内存与磁盘的交换提供了便利。 Androi
QQ音乐技术团队
2021/03/04
4.2K0
一文浅析内存管理机制
众所周知,程序需要加载到物理内存才能运行,多核时代会出现多个进程同时操作同一物理地址的情况,进而造成混乱和程序崩溃。计算机当中很多问题的解决都是通过引入中间层,为解决物理内存使用问题,虚拟内存作为中间层进入了操作系统,从此,程序不在直接操作物理内存,只能看到虚拟内存,通过虚拟内存,非常优雅的将进程环境隔离开来,每个进程都拥有自己独立的虚拟地址空间,且所有进程地址空间范围完全一致,也给编程带来了很大的便利,同时也提高了物理内存的使用率,可同时运行更多的进程。
范蠡
2021/04/08
1.4K0
一文浅析内存管理机制
Linux - Linux内存管理
内存管理是Linux系统重要的组成部分。为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。
小小工匠
2023/03/11
55.4K0
Linux - Linux内存管理
Linux性能调优之内存负载调优的一些笔记
「 原谅和忘记就意味着扔掉了我们获得的最贵经验 -------《人生的智慧》叔本华」
山河已无恙
2023/01/30
2.7K0
Linux性能调优之内存负载调优的一些笔记
Linux内存管理2.6 -反向映射RMAP(最终版本)
所谓反向映射是相对于从虚拟地址到物理地址的映射,反向映射是从物理页面到虚拟地址空间VMA的反向映射。
233333
2023/08/14
7010
Linux内存管理2.6 -反向映射RMAP(最终版本)
认识 Linux 内存构成:Linux 内存调优之页表、TLB、缺页异常、大页认知
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
山河已无恙
2025/04/26
4850
认识 Linux 内存构成:Linux 内存调优之页表、TLB、缺页异常、大页认知
Linux Used内存到底哪里去了?
这个问题不止一个同学遇到过了,之前小王同学也遇到这个问题,内存的计算总是一个迷糊账。我们今天来把它算个清楚下!
民工哥
2020/09/15
3.5K0
Linux Used内存到底哪里去了?
如何使用 BPF 监控 Linux 内存情况:Linux 内存调优之 BPF 内存监控分析
动态跟踪点: kprobes 和 uprobes,类似于内核态和用户态的方法埋点,比较灵活,可以任意监控
山河已无恙
2025/07/08
920
如何使用 BPF 监控 Linux 内存情况:Linux 内存调优之 BPF 内存监控分析
Linux内存占用常用的几个分析方法,你确定都知道?
系统内存是硬件系统中必不可少的部分,定时查看系统内存资源运行情况,可以帮助我们及时发现内存资源是否存在异常占用,确保业务的稳定运行。
lyb-geek
2022/11/18
4.1K0
Linux内存占用常用的几个分析方法,你确定都知道?
郭健:Linux内存管理系统参数配置之overcommit
终于可以进入Linux kernel内存管理的世界了,但是从哪里入手是一个问题,当面对一个复杂系统的时候,有时候不知道怎么开始。遵守“一切以人为本”的原则,我最终选择先从从userspace的视角来看内核的内存管理。最开始的系列文章选择了vm运行参数这个主题。执行ls /proc/sys/vm的命令,你可以看到所有的vm运行参数,本文选择了overcommit相关参数来介绍。
Linux阅码场
2019/10/08
3.2K0
郭健:Linux内存管理系统参数配置之overcommit
OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)
先说为啥是第二版呢,这里有两个原因,一是因为第一版大概是去年这个时候写的,没有考虑到序列同步的问题,如果你的数据库使用了序列,第一版是没有配置序列实时同步的,这样就导致了迁移完成后如果不单独导入系列,业务就没法使用,所以还需要处理序列。第二个原因是因为去年写的第一版大概是因为封面图使用了 O 注册商标,还是说文章抄袭了 O 享有的著作权,被北京某德事务所投诉,微信直接删除了这篇文章并清除了我历史关键字回复功能。。。点背,没办法,我也没办法申诉,只能默默认了。下面开始正文:
JiekeXu之路
2023/09/04
1.6K0
OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)
相关推荐
OGG "Loading data from file to Replicat"table静态数据同步配置过程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档