kafka 8和内存没有足够的内存供Java运行时环境继续运行
我使用的DigiOcean实例有512兆的ram,我用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)
# 1 楼答案
添加环境变量JAVA_OPTS
在Linux中,编辑~/。bashrc文件,并更好地源代码
在widows中,添加系统变量
然后重新启动
如果它不工作,许多文件应该被更改,e.x.bin/kafka服务器启动。sh,配置/服务器。属性。减少这些文件中的数字
# 2 楼答案
地区:热点/gc
概要
# 3 楼答案
在您的环境路径中,在JDK32上将java路径改为JDK64。这解决了我的问题,当时我有64gb的ram,使用32位Jvm将路径更改为JDK64(64位Jvm)解决了这个问题
# 4 楼答案
您可以通过编辑
kafka-server-start.sh
、zookeeper-server-start.sh
等来调整JVM堆大小:-Xms
参数指定最小堆大小。要使服务器至少启动,请尝试将其更改为使用更少的内存。假设您只有512M,您也应该更改最大堆大小(-Xmx
):我不确定默认配置中kafka的最小内存需求是什么-也许您需要调整kafka中的消息大小以使其运行
# 5 楼答案
在运行Kafka的Docker容器中,here的答案也可以用来解决相同的问题
只需将以下ENV变量添加到docker compose文件(或运行脚本):
当然,您应该微调主机资源可用性上的值