背景
在生产环境Flink任务资源是用户在实时平台端进行配置,用户本身对于实时任务具体配置多少资源经验较少,所以存在用户资源配置较多,但实际使用不到的情形。比如一个 Flink 任务实际上 4 个并发能够满足业务处理需求,结果用户配置了 16 个并发,这种情况会导致实时计算资源的浪费,从而对于实时集群资源水位以及底层机器成本,都有一定影响。基于这样的背景,本文从 Flink 任务内存以及消息能力处理方面,对 Flink 任务资源优化进行探索与实践。
一、Flink 计算资源类型与优化思路
1.1 Flink 计算资源类型
一个 Flink 任务的运行,所需要的资源我认为能够分为 5 类:
- 内存资源
- 本地磁盘(或云盘)存储
- 依赖的外部存储资源。比如 HDFS、S3 等(任务状态/数据),HBase、MySQL、Redis 等(数据)
- CPU 资源
- 网卡资源
目前 Flink 任务使用最主要的还是内存和 CPU 资源,本地磁盘、依赖的外部存储资源以及网卡资源一般都不会是瓶颈,所以本文我们是从 Flink 任务的内存和 CPU 资源,两个方面来对 Flink 实时任务资源进行优化。
1.2 Flink 实时任务资源优化思路
对于 Flink 实时任务资源分析思路&#