flink job资源占用单topic数据源多process多sink 对于数据源的拆分和不拆分资源占用情况一样?

KerryLi 发布于 06/16 17:38
阅读 268
收藏 0

如图,单个job同一数据源但是分为多个source-process-sink处理

通过jmx实时资源监控

和共用单source源多process,多sink

 

以上测试数据发送kafka  5万条数据。5个线程每个线程1万条数据,180秒左右发送完成。

通过实时资源占用查看。两个任务处理数据资源占用基本相同。

自己测试通过jmx观察,两个不同风格的任务,处理相同数量的数据,占用内存基本相同。是这样吗?

个人理解, 共用同souceStream的内存占用应该会更少,因为少了多余的sourceStream消费kafka消息,下游算子拿到的数据源也都是同一份数据,在内存中存储同一份,, 

但是如果多sourceStream(topic相同),  内存中每个sourceStream拿到的数据在内存中都要一份,然后传给下游算子, 应该占用内存更大啊。

难道我的测试方法有问题???

 

加载中
0
vvtf
vvtf

**sourceStream (topic 相同),**

group也相同?

vvtf
vvtf
回复 @KerryLi : topic的partition是多个吗?和**多sourceStream **一致吗?
KerryLi
KerryLi
对,group也相同
0
不会飞的小龙人
不会飞的小龙人

从你上面的示例来说,个人理解为partition并行度数量相同,不管是多个source多算子模式还是单source多算子模式,相同资源相周算子代码逻辑消耗因该不会相差明显。因为source是DataStream流式数据,实际都是使用流入同一片内存区域的资源而已;如有错,敬请指出。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部