当前位置: 首页 > 知识库问答 >
问题:

kafka 8和内存——没有足够的内存供Java运行时环境继续运行

温成济
2023-03-14

我正在使用具有512兆内存的Digi海洋实例,我得到以下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)

共有3个答案

水铭晨
2023-03-14

添加环境变量JAVA_OPTS。

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

export JAVA_OPTS="$JAVA_OPTS -Xms128M -Xmx128M"

在寡妇中,添加系统变量

JAVA_OPTS "-Xms128M -Xmx128M"

然后重新启动。

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

钱雅逸
2023-03-14

区域:热点/气相色谱

概要

Crashes due to failure to allocate large pages.

On Linux, failures when allocating large pages can lead to crashes. When running JDK 7u51 or later versions, the issue can be recognized in two ways:

    Before the crash happens, one or more lines similar to the following example will have been printed to the log:

    os::commit_memory(0x00000006b1600000, 352321536, 2097152, 0) failed;
    error='Cannot allocate memory' (errno=12); Cannot allocate large pages, 
    falling back to regular pages

    If a file named hs_err is generated, it will contain a line similar to the following example:

    Large page allocation failures have occurred 3 times

The problem can be avoided by running with large page support turned off, for example, by passing the "-XX:-UseLargePages" option to the java binary.
齐起运
2023-03-14

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

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

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

export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

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

 类似资料:
  • 问题内容: 我正在使用具有512兆内存ram的DigiOcean实例,使用kafka出现以下错误。我不是Java熟练的开发人员。如何调整卡夫卡以利用少量的ram。这是一个开发服务器。我不想为一台更大的机器每小时多付钱。 问题答案: 您可以通过编辑来调整JVM堆大小,依此类推: 该参数指定最小堆大小。要使服务器至少启动,请尝试对其进行更改以使用更少的内存。假设您只有512M,则还应该更改最大堆大小(

  • 我正在使用Java/J2EE开发web应用程序。当我在服务器中部署该应用程序时,它将运行两天后,tomcat将自动停止并打印此错误消息,如果一天内没有访问该应用程序,请帮助我解决此问题。 我已经设置了堆大小-xms1024m-xmx1536m-xx:maxpermsize=1024m' 内存不足,Java运行时环境无法继续。本机内存分配(malloc)未能为chunk::new分配32776字节。

  • 我已经研究了与类似问题相关的所有答案,但我无法得出结论,问题是在我的Java代码或Hbase配置中。所以我再次发布这个问题。我在HBASE中得到了bellow错误。我有3个VM用于Hadoop集群。 OpenJDK 64位服务器虚拟机警告:info:os::commit_memory(0x00007FE05185C000,12288,0)失败;error=“无法分配内存”(errno=12) 内存

  • 我是Tomcat/tech新手,所以如果我在问题描述中犯了任何错误,我很抱歉。 我读过很多关于相关主题的帖子,但由于我已经运行了一个应用程序十年,突然出现这个问题对我来说真的很奇怪。此外,这个环境就像一个测试服务器,目前我是唯一一个使用它的仪表板。因此,系统负载增加的可能性似乎不对;也没有内存泄漏的可能性。 有人能告诉我在这种情况下可能出了什么问题吗? 谢了! 编辑:我认为我的问题是不同的,因为它

  • 我试图从IntelliJ的想法运行JUnits,当我试图运行test.java文件时,它给了我一个错误,上面写着 Java:OutofMemoryError:内存不足 我尝试将分配给Idea的内存增加到6GB,但它仍然给我带来同样的错误,我遗漏了什么:/

  • 我试图用Python做一个简单的计算器。 我希望用户写“and”,然后while循环应该结束。当我运行它并输入随机文本时,while循环工作并显示“重试”。然而,当我实际输入正确答案(“add”)时,while循环并没有结束——相反,它一直在说“再试一次”。 为什么会这样?我的代码怎么了?