【问题标题】:How to Limit the kafka server Memory?如何限制kafka服务器内存?
【发布时间】:2021-07-20 22:15:21
【问题描述】:

我想设置Kafka服务器[9092端口]的最大和最小内存值

假设最大值为 2 GB,那么内存使用量不应超过 2GB,但目前超过了。

我有链接 - https://kafka.apache.org/documentation/#java

从 Apache 站点配置

-Xmx6g -Xms6g -XX:MetaspaceSize=96m -XX:+UseG1GC
-XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M
-XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -XX:+ExplicitGCInvokesConcurrent

但是我不知道怎么配置。

我的目标是设置最大内存限制值,并且 Kubernetes Dashboard 中的内存值不应超过最大内存限制值。

注意 - 设置最大内存限制值不应该在 Kubernetes POD Level 中,它应该和启动 zookeeper、Kafka Server 和 kafka 连接时的设置值一样。

-Xmx1G -Xms256M 证明

【问题讨论】:

  • Kubernetes 仪表板显示的是 pod 内存,而不是 JVM 内存。此外,2G 对于运行性能合理的 Kafka 集群来说也相当低
  • 是的 2G 低,这仅用于测试目的。然后在生产环境中,它占用 30GB,所以我尝试控制它..

标签: kubernetes apache-kafka jvm-arguments


【解决方案1】:

根据您用于 kafka 的图像,您可以通过环境变量 KAFKA_OPTS 提供这些设置。

您所指的文档将这些选项提供给 'java' 的调用。 Kafka、Zookeeper 等都是罐子,通过 java 声明。

【讨论】:

  • 好吧..我给了-Xmx1G和-Xms256M,但是kafka内存使用量仍然超过1GB...我想控制它,但是我不能。
  • 您是否有证据证明这些设置已被使用?也许是日志?
  • 我在问题中添加了图片。
  • 我研究了一下,了解到由于 jvm-internal 开销,jvm 可以超过 -Xmx。这是另一个解决此问题的question answered(查看此答案的 cmets)。
  • 我也试过 XX:MaxPermSize ,但是在 logs 中,这个参数被忽略了。我们可以通过 kafka 消费者、生产者属性来控制它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
相关资源
最近更新 更多