"Flink CDC的 standalone集群启动后,为什么内存的实际使用这么低呢,我给tm分配了8g,jm7g,但是这里看并没有那么多,这个内存的申请是懒加载的吗,只有用到才会申请?
"
在Flink CDC中,如果你的standalone集群启动后,内存的实际使用很低,那么可能有以下几种可能的原因:
问题1:Flink的内存管理并不是懒加载的,而是实时管理的。当你启动一个Flink任务时,Flink会根据任务的内存需求自动分配内存。但是,由于Flink的内存管理策略,实际的内存使用量可能会小于你分配的内存。
问题2:Flink的内存管理策略是“用完即分配”,也就是说,只有当任务需要的内存超过了当前可用的内存时,Flink才会增加内存。但是,一旦分配了内存,Flink就不会轻易减少内存。这是因为Flink为了保证任务的稳定性,会尽量保持内存的稳定。
所以,你看到的内存使用率虽然很低,但是实际的内存使用量可能很大。这是因为Flink可能已经为未来的任务预留了大量的内存。
如果你发现内存使用过多,你可以尝试调整Flink的内存管理策略,比如增大TaskManager的内存、提高并行度等。
flink jm/tm是普通的java进程,内存申请后只有被实际使用了才会反映在RSS指标上。你可以pmap -x pid看一下具体的内存分布。,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。