性能调优
采用默认配置,如果出现某些大字段导致性能上不去或者出现OOM的情况,一般可以按照如下方式确认性能瓶颈原因并且进行调优。
确认性能瓶颈原因
确认程序无异常
首先查看监控管理,查看有没有近期的任务异常,如果对应任务有写入异常,可能一些表的数据就会一直无法写入
TIPS: 异常监控处请选择任务异常,右侧点击查看异常堆栈
![]()
确认程序是否存在GC问题导致的OOM
在任务监控的资源监控页面可以查看GC情况,如果存在FGC的30秒耗时和FGC 30秒数量大于0(正常情况下应该为0),则说明任务运行时JAVA的垃圾回收导致性能降低和OOM
存在GC问题时的处理方式
全量迁移参数修改
减小fullRingBufferSize参数、fullBatchSize参数、writeParallel的值(改为1)然后观察FGC相关指标是否变小
如果没有GC问题,需要提升性能,也可以适当增大以上参数,提升并行和批处理效率
增量同步参数修改
减小increRingBufferSize参数、increBatchSize参数、writeParallel的值(改为1)然后观察FGC相关指标是否变小
如果没有GC问题,需要提升性能,也可以适当增大以上参数,提升并行和批处理效率
TIPS: 任务的负载不同、环境不同,最佳的参数配置也有所不同,用户可以自行验证,找到自家最佳的参数配置组合,一切请以实际情况为准。
规格调整
如果参数调整后仍然未起到效果,可以考虑修改规格。任务详情页点击参数修改,搜索spec,根据需要修改对应的规格id来启用不同的任务规格。
确认是否对端写入存在瓶颈
如果GC不存在问题,则观察对端写入是否存在瓶颈。查看对应任务的日志。其中最后一列是耗时的毫秒数。
/home/clougence/logs/cloudcanal/tasks/${taskName}/apply_commit.log
例如上面一批的耗时为将近10s,说明对端处理能力存在瓶颈。在不存在FGC的前提下,可以尝试增大并行数,以及前文提到的3个批量相关的参数
确认机器系统监控情况
确认机器的cpu usage / cpu load等情况,如果以上源对端不存在瓶颈,并且也不存在OOM和异常,可以查看机器的监控,如果监控发现机器负载比较高,则考虑使用更高规格的机器。