Routineload消费Kafka数据优化配置效果不明显

【详述】参照:https://docs.mirrorship.cn/zh/docs/faq/loading/Routine_load_faq,对现有的routineload任务优化不生效。优化前,相关日志截图如下,left_bytes > 0


尝试修改routine_load_task_consume_second值由15秒改成30秒,对应的作业效率并未明显提升,如下:

【背景】尝试修改routine_load_task_consume_second值由15秒改成30秒,并未明显提升
【是否存算分离】否
【StarRocks版本】3.2.2
【集群规模】3fe(3 follower)+6be(fe与be混部)
【机器信息】64C/192G/万兆
【表模型】明细模型

routine_load_task_consume_second是单次routine load task消费kafka的最大时间(和最大数据量 max_routine_load_batch_size 两者取低) 如果是大数据量级别的调优可以参考:

首先要了解下 Routine Load Job并发度

单个Routine Load Job的并发度由以下四个值的最小值决定:

kafka_partition_num

desired_concurrent_number

alive_be_num

max_routine_load_task_concurrent_num

集群Task处理能力

集群Task处理能力为 routine_load_thread_pool_size * alive_be_num

当所有Routine Load Job的并发度之和大于集群Task处理能力,则可能出现 TOO_MANY_TASKS 的报错,导致部分Job处理不及时。

性能调优

总体思路

  • 降低导入QPS,集群总体的导入QPS尽量< 10

    • 计算方式: 集群 routine_load_task_num / routine_load_task_consume_second
  • 增加单个导入事务的数据量,单个Routine Load Task导入的数据量 > 1G

    • 需要同时调整 max_routine_load_batch_size,routine_load_task_timeout_second 来实现
  • 单个BE上并发导入任务 routine_load_thread_pool_size 尽量< be_core_num / 2

1赞