我正在使用具有512兆内存ram的DigiOcean实例,使用kafka出现以下错误。我不是Java熟练的开发人员。如何调整卡夫卡以利用少量的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)
您可以通过编辑来调整JVM堆大小kafka-server-start.sh,zookeeper-server-start.sh依此类推:
kafka-server-start.sh
zookeeper-server-start.sh
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
该-Xms参数指定最小堆大小。要使服务器至少启动,请尝试对其进行更改以使用更少的内存。假设您只有512M,则还应该更改最大堆大小(-Xmx):
-Xms
-Xmx
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
我不确定默认配置中kafka的最小内存要求是什么-也许您需要在kafka中调整消息大小才能使其运行。