作业任务参数调优
概述
实时数据集成服务底层使用Flink流处理框架进行开发,因此包含了Flink系统中最重要的两个部分:JobManager和TaskManager。
作业任务配置中调整的处理器核数、并发数、执行内存参数等便是用来调整JobManager和TaskManager的,默认情况下单个作业使用2U8G资源,会对应创建出1个JobManager进程和1个TaskManager进程,且均使用1U4G资源。
作业调优
默认场景下,给定的1U4G规格可满足绝大部分使用场景,但Migration服务也提供修改JobManager和TaskManager规格的能力以应对极端情况。例如最常见的作业内存溢出,可以在实时集成作业的“任务配置”中添加自定义属性,根据实际情况调整JobManager和TaskManager的各类内存来适应同步场景。
参数名 |
参数类型 |
默认值 |
参数说明 |
---|---|---|---|
jobmanager.memory.process.size |
int |
3586MB |
jobmanager的处理内存,直接影响堆内存大小。
说明:
该配置会占用总体资源,影响新增其他作业,非必要不配置。 |
taskmanager.memory.process.size |
int |
3686MB |
taskmanager的处理内存,直接影响堆内存大小。
说明:
该配置会占用总体资源,影响新增其他作业,非必要不配置。 |
taskmanager.memory.managed.fraction |
int |
0.2 |
taskmanager管理内存占比。 |
taskmanager.memory.network.max |
int |
128MB |
默认不需要配置,分库分表场景下如果实例数和表数过多,建议根据实际情况增加网络内存。 |
taskmanager.memory.network.fraction |
int |
0.1 |
默认不需要配置,分库分表场景下如果实例数和表数过多,建议根据实际情况增加网络内存。 |
checkpoint.interval |
int |
60000 |
Flink作业生成checkpoint的间隔,单位为毫秒。数据量大的作业建议调大,需要给更长时间进行数据Flush,但会增加时延。 |
checkpoint.timeout.ms |
int |
600000 |
Flink作业生成checkpoint的超时时间,单位为毫秒。 |