人大金仓KFS实时同步-perf命令

关键字:

KFS,实时同步,程序性能,perf命令

概述

程序的性能是指计算机程序在执行任务时所表现出的速度、效率和稳定性等方面的度量。性能的好坏直接影响到程序的用户体验和开发成本。优化程序性能通常包括提高代码质量、减少资源消耗、采用更高效的算法和技术等方面。本文将简要介绍KFS提供的与性能相关的命令-perf。

实时同步流程概述

源端

Stage(阶段)

Extraction

Applying

binlog-to-q

从事务日志获取增量

将增量放入内存队列

q-to-kufl

从内存队列中获取增量

1.将增量写入KUFL 2.更新数据库中的中间表断点

目标端

Stage(阶段)

Extraction

Applying

remote-to-kufl

通过网络从源端KUFL获取增量

将增量写入本地KUFL

kufl-to-q

从本地KUFL获取增量

将增量写入内存队列

q-to-dbms

从内存队列中获取增量

将增量加载到目标端数据库

KFS源端的工作流分为两个阶段:binlog-to-q, q-to-kufl.

binlog-to-q阶段,KFS从源端的数据库日志中抽取增量数据,经过extractor模块解析封装后,以DBMSEvent的形式在内存队列queue中暂存,此阶段的主要工作是将数据库的元组信息抽取转化为DBMSEvent,我们称此阶段为“解析”阶段。

q-to-kufl阶段,将队列中的DBMSEvent取出,封装为KUFLEvent,经过序列化成为KUFL持久化在外存文件中,此阶段主要是将内存中的数据转化为外存文件持久化,我们称此阶段为“存储”阶段。

KFS目标端工作流分为三个阶段:remote-to-kufl, kufl-to-q, q-to-dbms.

remote-to-kufl阶段,KFS目标端通过主动访问源端的监听,建立TCP连接,从源端的KUFL文件中反序列化按顺序将KUFLEvent获取,获取完成后序列化成为KUFL存储在本地,此阶段的主要任务是将源端的文件发送到目标端,我们将此阶段称为“传输”阶段。

kufl-to-q阶段,KFS将本地的KUFL中反序列化成为KUFLEvent,同时解析为DBMSEvent存储在内存队列queue中。

q-to-dbms阶段,applier将内存中的DBMSEvent取出,同时将其翻译成为SQL语句,应用到目标端数据库中,此阶段的主要目的是将数据入库,因此我们将此阶段称为“入库”阶段。

简要来说,各个阶段所进行的活动如下:

源端

binlog-to-q:1.从事务日志获取增量数据 2.将增量数据放入内存队列

q-to-kufl:1.从内存队列中获取增量数据 2.将增量数据写入KUFL文件持久化 3.更新数据库中间表中的断点位置。

目标端

remote-to-kufl:1.通过网络从源端获取增量数据 2.将增量数据写入KUFL文件持久化

kufl-to-q:1.从本地KUFL文件获取增量数据 2.将增量数据放入内存队列

q-to-dbms:1.从内存队列中获取增量数据2.将增量数据加载到目标数据库

KFS中perf命令

KFS提供了fsrepctl perf命令来进行同步过程中各阶段的性能监控。

源端:

C:\Users\weiqian\AppData\Roaming\Ktalk\localfiles\media\9df3e212c88841c01104d528a5ea0258.png

目标端:

C:\Users\taoxinyu\Desktop\通过fsrepctl perf命令查看每个阶段的主要动作.png

Perf结果解析:

Stage:表示当前服务的工作阶段。

源端的工作阶段有:binlog-to-q和q-to-kufl,目标端的工作阶段有:

remote-to-kufl、kufl-to-q、q-to-dbms。详细参考第2节“同步原理概述”。

Seqno:表示对应阶段正在处理的事务seqno号,一个seqno对应数据库中的一个事务。

Latency:表示对应阶段当前的延迟时间,单位秒。

Events:表示对应阶段运行至今所处理的事务frag数量,一个seqno中可能包含1个或多个frag。

Extraction:表示对应阶段的抽取动作消耗的时间。

Filtering:表示对应阶段的过滤动作消耗的时间。

Applying:表示对应阶段的应用动作消耗的时间。

Other:其他时间消耗,可忽略。

Total:该阶段的所消耗的总时间。

在目标端增加配置参数collect_sys_info=ture,在使用perf命令时,会对最后一条KUFL的latency进行判断,若latency小于基准值则判断无性能问题,perf命令正常结束,若latency超过基准值(默认为5秒,可通过replicator.stage.reference_latency参数配置),则进行定时信息收集并打印(可通过replicator.collection_time和replicator.collect_interval配置收集时间以及收集间隔),同时后台会进行执行时间超过基准值(默认值为5秒,可通过replicator.transaction_reference_latency参数配置)的事务记录在文件中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值