弹性搜索内存问题

2022-08-31 17:11:09

当我尝试在我的Ubuntu中启动弹性搜索时,启动脚本给我以下错误:

Java HotSpot(TM) Client VM warning: INFO: os::commit_memory(0x74800000, 201326592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 201326592 bytes for committing reserved memory.

我已经尝试通过这个搜索,但我找不到这个的解决方案。如果我重新启动计算机,一天一切正常,然后弹性搜索关闭并显示此错误。

我已经在 elasticsearch.yml 文件中设置了属性 bootstrap.mlockall: true,以及默认 elasticsearch 文件中的属性:

ES_HEAP_SIZE=512 (I have 1GB of RAM)
MAX_LOCKED_MEMORY=unlimited

有人知道我需要做什么吗?

谢谢


答案 1

您已为虚拟机配置了 1 GB RAM,但 Elastic 尝试从 2 GB RAM 开始(Elasticsearch 版本 5.X 的默认值)

为 VM 提供更多内存,或更改 Elasticsearch JVM 设置并降低以下参数的值:/etc/elasticsearch/jvm.options-Xms512m -Xmx512m


答案 2

对于当前版本的弹性 (5.X),您可以在通常位于目录下的文件中配置 jvm 启动选项jvm.options/etc/elasticsearch/jvm.options

-Xms1g -Xmx1g

希望它有帮助。