我正在使用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)
答案 0 :(得分:50)
您可以通过修改kafka-server-start.sh
,zookeeper-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
当然,您应该微调主机资源可用性的值