开发者社区> 问答> 正文

canal server修改删除FGC问题

提问238.png

提问239.png

server端修改删除,FGC次数多,常驻内存居高不下,ringbuffer已调1024,,iparallelBufferSize也调到了最低,nstance实例只有一个,请问是不是还是配置的问题啊

原提问者GitHub用户acuitong

展开
收起
古拉古拉 2023-05-08 13:54:21 90 0
2 条回答
写回答
取消 提交回答
  • dump一份内存可以精确分析一下,ringbuffer可以再调低

    单个Event 200kb,2036个的内存占用基本就明确了。要么调大内存,要么减少ringbuffer size,其他没办法.

    ps. ringbuffer没有最小1024的限制,只要是2的指数倍 并且 大于 canal.instance.transaction.size的设置

    原回答者GitHub用户agapple

    2023-05-09 17:49:28
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    根据您的描述,在 Canal 服务器端进行修改和删除操作时,频繁触发 FGC,导致常驻内存居高不下,即使将 ringbuffer 调整到 1024,iParallelBufferSize 调整到最低,仍无法解决问题。这可能是由于 Canal 实例的配置问题导致的。

    针对这个问题,您可以尝试以下解决方案:

    检查 Canal 实例的参数配置。您需要确保 Canal 实例的参数设置合理,例如 canal.instance.memory.buffer.size、canal.instance.memory.rawEntrySize、canal.instance.network.batchSize 等。这些参数需要根据您的实际情况进行调整,以确保 Canal 实例的性能和稳定性。

    检查 Canal 实例的监控数据。您可以查看 Canal 实例的监控数据,了解 Canal 实例的运行情况。例如,您可以查看 Canal 实例的堆内存使用情况、GC 次数、GC 时间等指标。如果您发现 Canal 实例的 GC 次数过多,可以尝试增加堆内存大小或调整 GC 策略,以改善 Canal 实例的性能。

    检查 Canal Server 的资源配置。如果您的 Canal Server 部署在一台虚拟机或容器中,可能会受到资源限制的影响。您需要确保 Canal Server 的资源设置合理,例如 CPU、内存、磁盘、网络带宽等。

    考虑使用 Canal 集群模式。如果您的数据量较大,单个 Canal 实例无法满足需求,可以考虑使用 Canal 集群模式。在 Canal 集群模式下,多个 Canal 实例可以共同处理数据,并且可以动态地调整实例的数量,以适应不同的负载情况。

    希望以上几点建议对您有所帮助。如果您仍然遇到问题,可以提供更多详细信息,例如 Canal 实例的配置文件、监控数据、GC 日志等,以便我们更好地帮助您解决问题。

    2023-05-08 14:04:16
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载