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