Apache Flink 作为主流的流批一体计算框架,调优通常从 资源、并行度、状态、checkpoint、数据倾斜、算子/API、网络与内存 等多个维度入手。下面按「实战优先级」给你一份比较系统的 Flink 调优指南。
parallelism.default: 4
dataStream.map(...).setParallelism(8);
原则:
taskmanager.numberOfTaskSlots: 4
taskmanager.memory.process.size: 4096m
建议:
背压比例、buffer usage| 原因 | 优化方式 |
|---|---|
| 某算子太慢 | 提高并行度 |
| 数据倾斜 | 重分区 / 加盐 |
| 外部系统慢 | 批量写、异步 IO |
| GC 频繁 | 调内存、换 GC |
state.backend: rocksdb
state.backend.incremental: true
StateTtlConfig ttl = StateTtlConfig
.newBuilder(Time.days(7))
.cleanupInRocksdbCompactFilter()
.build();
避免状态无限增长
execution.checkpointing.interval: 30s
execution.checkpointing.mode: EXACTLY_ONCE
execution.checkpointing.timeout: 10min
unaligned checkpointexecution.checkpointing.unaligned: true
keyBy(x -> x.key + "_" + random(0,10))
taskmanager.network.memory.fraction: 0.2
taskmanager.network.memory.max: 1gb
new Objectprocess > map + stateasync IO 代替同步外部调用dataStream.disableChaining();
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
GC time、old genrecords-in / outcheckpoint durationstate sizebackpressure先查反压 → 再查状态 → 看并行度和资源 → 最后抠细节(GC、网络、API)
如果你愿意,可以告诉我:
我可以直接帮你给一套针对性调优参数模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。