kafka 8和内存 - Java Runtime Environment没有足够的内存来继续

时间:2014-01-30 05:55:03

标签: java apache-kafka

我正在使用DigiOcean实例和512兆内存,我用kafka得到了以下错误。 我不是一个java熟练的开发者。如何调整kafka以利用少量的ram。这是一个开发者。我不想每小时为更大的机器支付更多费用。

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# //hs_err_pid6500.log
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000bad30000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)

6 个答案:

答案 0 :(得分:50)

您可以通过修改kafka-server-start.shzookeeper-server-start.sh等来调整JVM堆大小:

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

-Xms参数指定最小堆大小。要让您的服务器至少启动,请尝试将其更改为使用更少的内存。鉴于您只有512M,您应该更改最大堆大小(-Xmx):

export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

我不确定默认配置中kafka的最小内存要求是什么 - 也许你需要调整kafka中的消息大小才能让它运行。

答案 1 :(得分:1)

区域:HotSpot / gc

概要

   $('#expertprofiles-category-filters .filterby > a').click();

答案 2 :(得分:0)

就我的情况而言,我以前正在做一个具有android studio和一台虚拟机运行一整夜的android开发,当我尝试启动apache Kafka服务器时我意识到了这个错误。 我重新启动了笔记本电脑以重置内存,然后再次启动Kafka服务器,希望这对那里的人有所帮助!..

答案 3 :(得分:0)

在您的环境路径中,将Java路径更改为JDK64,而不是JDK32。这解决了我的问题,当时我使用的是64GB RAM,并使用32位Jvm将路径更改为JDK64(64位JVM),从而解决了该问题。

答案 4 :(得分:0)

添加环境变量JAVA_OPTS。

在Linux中,编辑〜/ .bashrc文件,并更好地获取它。

export JAVA_OPTS="$JAVA_OPTS -Xms128M -Xmx128M"

在寡妇中,添加系统变量

JAVA_OPTS "-Xms128M -Xmx128M"

然后重新启动。

如果不起作用,则应更改许多文件,例如。 bin / kafka-server-start.sh config / server.properties 。减少这些文件中的数字。

答案 5 :(得分:0)

here 的回答也可用于解决 运行 Kafka 的 Docker 容器中的相同问题。

只需将以下 ENV 变量添加到您的 docker-compose 文件(或运行脚本):

ansible.builtin.copy

当然,您应该微调主机资源可用性的值