⌘CtrlK
Appearance
Appearance
现象:数据同步作业执行极慢,远低于预期。
解决步骤:
1.调大“处理集大小” 在作业通用配置中,将处理集大小从 1000 调至 5000~10000。
2.开启数据库批处理
MySQL:JDBC URL 添加 rewriteBatchedStatements=true
PostgreSQL:添加 reWriteBatchedInserts=true
3.增加并行度
4.使用多个表输出组件,连线规则选“分发”。
5.优化 SQL 查询 确保源表查询有索引,避免全表扫描。
现象:小数据量作业执行时间过长。
解决步骤:
1.按第 1条优化批处理和并发。
2.检查目标数据库性能,是否有锁等待或索引缺失。
3.使用“批量加载”组件(如 MySQL批量加载)替代普通表输出。- 参考:批量加载组件
4.分析作业日志,定位具体哪个步骤耗时最长。
现象:作业执行时报内存溢出,或预览大文件时崩溃。
解决步骤:
调大组件 JVM 内存
DWS server:修改 bin/startup.sh 中的 -Xms 和 -Xmx(如 -Xms4g -Xmx4g,内存大小请根据实际调大)。
Dolphin:修改 dolphinscheduler_env.sh 中的 MASTER_JAVA_OPTS 和 WORKER_JAVA_OPTS。
DI server:修改 diserver/config/jvm_options。
SeaTunnel:修改 seatunnel/config/jvm_options 和 jvm_client_options。(参数如 -Xms2g -Xmx2g,内存大小具体根据实际调大)

数据加工中调小作业的“处理集大小”
在作业通用配置中,将“处理集大小”从 10000 调低至 2000~5000,减少单次事务内存消耗。
拆分大作业
将一个大作业拆分为多个小作业,通过编排串行或并行执行。
| 组件 | 参数位置 | 优化建议 |
|---|---|---|
| Dolphin 资源阈值 | application.yaml | max-system-memory-usage-percentage-thresholds: 0.95 |
| DI 处理集大小 | 作业通用配置 | 5000~10000 |
| DI server 内存 | jvm_options | -Xms4g -Xmx8g |
| SeaTunnel 内存 | jvm_options | jvm_client_options |
| MySQL 批处理 | JDBC URL | rewriteBatchedStatements=true |
| PostgreSQL 批处理 | JDBC URL | reWriteBatchedInserts=true |
注:调整 JVM 内存前确保服务器有足够物理内存。