oms 数据迁移任务限速

【 使用环境 】生产环境
【 OB or 其他组件 】oms
【 使用版本 】4.2.7_CE
【问题描述】数据迁移任务,最小规格(平稳),含全量和增量阶段,源端是阿里云 rds for mysql ,目标端是云下自建的 ob 集群,问题是占用专线带宽较多,想知道调整哪些参数能限制下迁移速度
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

根据文档库中的信息,OMS 社区版支持对数据迁移任务进行限速配置。您可以调整以下参数来限制迁移速度,从而减少对专线带宽的占用:

  1. 全量迁移阶段限速

    • 在创建数据迁移项目时,可以在“高级设置”中找到“限速”选项。
    • 设置“全量迁移限速”,单位为 KB/s 或 MB/s,以控制全量迁移过程中的数据传输速率。
  2. 增量迁移阶段限速

    • 同样在“高级设置”中,可以找到“增量迁移限速”选项。
    • 设置“增量迁移限速”,同样以 KB/s 或 MB/s 为单位,用于控制增量迁移过程中产生的数据同步速率。

具体操作步骤如下:

  • 登录 OMS 管控平台。
  • 创建或编辑现有的数据迁移项目。
  • 在项目配置页面,找到并进入“高级设置”。
  • 根据需要设置“全量迁移限速”和“增量迁移限速”的值。
  • 保存配置并启动或重启迁移任务。

以上信息来源于《OceanBase 迁移服务》文档 使用 OMS 进行数据迁移数据迁移概述 章节,请参考官方文档获取更详细的指导。

此外,建议您根据实际网络状况和业务需求合理设置限速值,避免过低影响迁移效率,过高则可能继续占用过多带宽资源。如果还有其他问题或者不确定的地方,欢迎随时联系 OceanBase 的技术支持团队获取帮助。

更多信息请查看:

  1. 通过 OMS 进行数据迁移和同步
  2. 导入数据概述
  3. OceanBase 迁移服务(OMS)
  4. OceanBase 生态工具介绍

如何设置限流限速

https://www.oceanbase.com/docs/community-oms-cn-1000000001880694

Incr-Sync 组件增加参数 throttleIOPS 后,任务报错,重启后任务正常,但过一会儿又报同样的错误。



增量组件error.log (13.4 KB)

根据您提供的信息和日志内容,问题主要集中在 throttleIOPS 参数引入后导致的增量同步任务报错。从日志中可以看到,错误信息为 Requested permits must be positive 以及 Connection is closed。以下是详细的分析和建议:

1. 关于 throttleIOPS 参数

  • 参数含义throttleIOPS 参数用于限制 I/O 操作的速率,以避免对系统资源造成过大压力。
  • 可能原因:如果设置的 throttleIOPS 值不合理(例如过低),可能会导致任务频繁触发限流机制,进而影响连接的稳定性,最终导致连接被关闭。

2. 关于 Connection is closed 错误

  • 日志分析
    • 日志显示多个线程在尝试重置或关闭连接时遇到了 Connection is closed 的异常。
    • 这种情况通常发生在连接池中的连接被标记为无效或已经关闭,但任务仍然尝试使用这些连接进行操作。

3. 解决方案

3.1 调整 throttleIOPS 参数

  • 合理设置:确保 throttleIOPS 的值设置在一个合理的范围内。过低的值可能导致任务频繁触发限流,过高则可能无法达到预期的限速效果。
  • 逐步调整:可以先将 throttleIOPS 设置为一个较高的值,观察任务是否稳定运行。然后逐步降低该值,找到一个既能有效限流又不影响任务稳定性的平衡点。

3.2 优化连接管理

  • 检查连接池配置
    • 确保连接池的最大连接数、最小空闲连接数等参数配置合理,避免因连接池配置不当导致连接被频繁关闭。
    • 可以参考以下配置示例:
      # Apache Commons DBCP2 Connection Pool
      db.app.pool.driverClassName=com.mysql.jdbc.Driver
      db.app.pool.url=jdbc:mysql://host:port/schema_name?characterEncoding=UTF-8
      db.app.pool.username=user_name
      db.app.pool.password=******
      db.app.pool.initialSize=3
      db.app.pool.maxTotal=10
      db.app.pool.maxIdle=20
      db.app.pool.minIdle=5
      db.app.pool.maxWaitMillis=5000
      db.app.pool.validationQuery=select 1
      
  • 增加连接验证
    • 启用连接验证功能,确保每次从连接池获取连接时都进行有效性检查,避免使用无效连接。
    • 可以通过设置 validationQuerytestOnBorrow 参数来实现:
      db.app.pool.validationQuery=select 1
      db.app.pool.testOnBorrow=true
      

3.3 监控与日志分析

  • 启用详细日志:增加日志级别,记录更多关于连接管理和任务执行的信息,以便更好地定位问题。
  • 监控系统资源:监控系统的 CPU、内存、网络带宽等资源使用情况,确保系统资源充足,避免因资源不足导致连接不稳定。

4. 总结

综上所述,throttleIOPS 参数的不合理设置可能是导致增量同步任务报错的主要原因之一。建议您首先调整 throttleIOPS 参数的值,确保其在一个合理的范围内。同时,优化连接池配置并启用连接验证功能,以提高连接的稳定性。最后,通过监控和日志分析进一步排查潜在问题。

如果问题依然存在,建议联系 OceanBase 的技术支持团队,提供详细的日志和配置信息,以便获得更专业的帮助。

详情请参考:

  1. Tomcat 连接池连接 OceanBase 数据库示例程序

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

组件监控 查看一下

1 个赞

应该是限流限速参数的bug 后面会修复

应该是bug

已经给你警告了 如果在灌水 就给你禁言

throttleIOPS 使用这个参数做限流,会遇到这个报错
throttleRps 改用这个参数做限速,运行了2天多了,目前稳定

好的 不过这个参数确实有问题 后面会修复