kafkaMap1073741824字节以提交保留内存失败

qzlgjiam  于 2021-06-07  发布在  Kafka
关注(0)|答案(3)|浏览(324)

我正在awst2示例上安装kafka(一个有1gb内存的示例)。
(1) 我下载kafka_2.11-0.9.0.0(2)我运行zookeeper bin/zookeeper-server-start.sh config/zookeeper.properties(3)我尝试运行bin/kafka-server-start.sh config/server.properties
java hotspot(tm)64位服务器vm警告:信息:os::commit\ U memory(0x00000000c0000001073741824,0)失败;error='cannot allocate memory'(错误号=12)
.#
.#内存不足,java运行时环境无法继续。
.#本机内存分配(mmap)Map1073741824字节以提交保留内存失败。
.#包含更多信息的错误报告文件另存为:
.#/home/machine_name/kafka_2.11-0.9.0.0/hs_err_pid9161.log
我检查了server.properties配置文件和文档中的所有属性,查找可以尝试执行类似操作但找不到任何内容的属性。
有人知道为什么Kafka在启动时要分配1GB吗?

7fyelxc5

7fyelxc51#

kafka默认为以下jvm内存参数,这意味着kafka将在启动时分配1gb,并使用最多1gb的内存:

-Xmx1G -Xms1G

只需将kafka\u heap\u opts env变量设置为您想要使用的任何变量即可。您也可以编辑./bin/kafka-server-start.sh并替换这些值。

uxhixvfz

uxhixvfz2#

另外,如果内存堆较低,那么尝试减小zookeeper和kafka的大小-xmx400m-xms400m

7bsow1i6

7bsow1i63#

此问题还可能与分配的最大内存Map区数有关。它抛出完全相同的错误。
要解决此问题,可以运行以下操作:

sysctl -w vm.max_map_count=200000

您希望根据文件描述符限制设置此值。总之,对于代理上的每个日志段,需要两个Map区域—一个用于索引,另一个用于时间索引。
参考请参见Kafkaos部分:https://kafka.apache.org/documentation/#os

相关问题