弹性搜索占用大量内存

时间:2018-09-20 08:56:40

标签: elasticsearch

弹性搜索占用的RAM超过25 GB。我提供给弹性搜索索引的数据约为1 GB。为什么弹性搜索需要这么多空间?

2 个答案:

答案 0 :(得分:4)

出于某种原因,“elasticsearch”默认使用了我 24G 内存的 53%,如果你问我,这很疯狂。也许是因为它是自动配置的,如下文所述。无论如何,要设置自定义 JVM 堆大小,应该在 jvm.options.d 目录中创建一个文件“jvm.options”,并添加默认“jvm.options”文件中所述的自定义值:

################################################################
## IMPORTANT: JVM heap size
################################################################
##
## The heap size is automatically configured by Elasticsearch
## based on the available memory in your system and the roles
## each node is configured to fulfill. If specifying heap is
## required, it should be done through a file in jvm.options.d,
## and the min and max should be set to the same value. For
## example, to set the heap to 4 GB, create a new file in the
## jvm.options.d directory containing these lines:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################

我已经将内存使用量设置为 1G,所以文件看起来像这样:

-Xms1g
-Xmx1g

然后你应该重新启动“elasticsearch”服务,你可以使用以下命令检查内存使用情况:
sudo service elasticsearch status

Elasticsearch 和 jvm 版本:
版本:7.11.0,构建:default/deb/8ced7813d6f16d2ef30792e2fcde3e755795ee04/2021-02-08T22:44:01.320463Z,JVM:15.0.1

答案 1 :(得分:2)

每当Elastic Search从默认设置开始时,由于其堆空间分配默认为1GB设置,它会消耗大约1 GB的RAM。

确保检查“ jvm.options”文件

对于Ubuntu Linux操作系统:-{如果使用debian File安装} 文件位置:-/ etc / elasticsearch /

对于Windows操作系统:- 文件位置是提取的文件夹位置 {extacted_folder_path / config / jvm.options}

在jvm.options文件中,您需要配置JVM Heap的某些设置

-Xms1g

-Xmx1g

-Xms1g设置为在弹性搜索开始时获取1 GB的初始RAM大小。 -Xmx1g定义了对Elastic Search JVM Heap的最大RAM分配。

您需要将这两个参数调整为4 GB或满足您需要的任何参数。

-Xms4g

-Xmx4g

注意:-设置的Java堆空间不要超过32 GB,这不会带来任何好处。