调整 Elasticsearch 分配的 Heap Size
今天在吐槽纸吸管之前,在 Mastodon 搜索「纸吸管」,准备连上之前的吐槽形成一个 thread。但没有出来任何搜索结果。查看了一下服务器 Elasticsearch 的运行状态:
sudo service elasticsearch status
随之发现处于 inactive
,同时报错:
Jan 08 07:20:22 boilingcong elasticsearch[31559]: # There is insufficient memory for the Java Runtime Environment to continue.
Jan 08 07:20:22 boilingcong elasticsearch[31559]: # Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
原来是我可怜的内存只剩下 900 多 MB free,报错信息和查询结果都显示这并不满足 Elasticsearch 默认分配堆的大小:
By default, Elasticsearch tells the JVM to use a heap with a minimum and maximum size of 1 GB.
随后又有:
Elasticsearch will assign the entire heap specified in jvm.options via the
Xms
(minimum heap size) andXmx
(maximum heap size) settings. These two settings must be equal to each other.
其在 jvm.options
里:
-Xms1g
-Xmx1g
所以我们需要通过添加 /etc/elasticsearch/jvm.options.d/custom.options
或者直接修改1的方式将其更改成:
-Xms512m
-Xmx512m
并重新启动:
sudo service elasticsearch restart