[英]Flink uses more memory than taskmanager.memory.process.size in Kubernetes
在 Flink 1.10.0 中,我们尝试使用taskmanager.memory.process.size
来限制taskmanager.memory.process.size
使用的资源,以确保它们不会被 Kubernetes 杀死。 但是,通过以下设置,我们仍然会得到很多任务管理器OOMKilled
。
关于如何正确设置 Kubernetes 和 Flink 以便我们没有OOMKilled
任何建议?
Kubernetes 设置与https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/deployment/kubernetes.html 中描述的相同。
下面是Kubernetes中taskmanager部署的资源配置:
resources:
requests:
cpu: 1000m
memory: 4096Mi
limits:
cpu: 1000m
memory: 4096Mi
flink-conf.yaml
中所有内存相关的配置:jobmanager.heap.size: 820m
taskmanager.memory.jvm-metaspace.size: 128m
taskmanager.memory.process.size: 4096m
我们使用RocksDB,我们不设置state.backend.rocksdb.memory.managed
在flink-conf.yaml
。
不确定如何检查any substantial off-heap memory allocations in your application code or its dependencies
是否有any substantial off-heap memory allocations in your application code or its dependencies
。 有什么工具建议这样做吗?
以下是我们的依赖项仅供参考。
val flinkVersion = "1.10.0"
libraryDependencies += "com.squareup.okhttp3" % "okhttp" % "4.2.2"
libraryDependencies += "com.typesafe" % "config" % "1.4.0"
libraryDependencies += "joda-time" % "joda-time" % "2.10.5"
libraryDependencies += "org.apache.flink" %% "flink-connector-kafka" % flinkVersion
libraryDependencies += "org.apache.flink" % "flink-metrics-dropwizard" % flinkVersion
libraryDependencies += "org.apache.flink" %% "flink-scala" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" %% "flink-statebackend-rocksdb" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "provided"
libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.6.7"
libraryDependencies += "org.log4s" %% "log4s" % "1.8.2"
libraryDependencies += "org.rogach" %% "scallop" % "3.3.1"
我们在 Flink 1.9.1 中使用的配置如下。 它没有OOMKilled
。
resources:
requests:
cpu: 1200m
memory: 2G
limits:
cpu: 1500m
memory: 2G
jobmanager.heap.size: 820m
taskmanager.heap.size: 1024m
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.