新手问题 如何在 1G 内存的阿里云上运行 elasticsearch

zaqmjuop · 2017年07月10日 · 最后由 leekelby 回复于 2017年07月13日 · 6729 次阅读

运行 sudo /etc/init.d/elasticsearch start 返回 [ ok ] Starting elasticsearch (via systemctl): elasticsearch.service.
但是运行 netstat -antu 没有端口 9200 的进程
运行 sudo /usr/share/elasticsearch/bin/elasticsearch
返回
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed;
error='Cannot allocate memory' (errno=12)
There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
An error report file with more information is saved as:
/home/van/hs_err_pid20963.log
在官网的https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
看见可以在/etc/elasticsearch/jvm.options 配置 -Xmx2g - Xmx2g 来指定内存,可是阿里云乞丐版内存就 1G
所以我设定成 -Xmx256m - Xmx256m
然后在运行就 Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.NoSuchFileException:
/usr/share/elasticsearch/config
所以貌似-Xmx 后面的单位只能是 g
不知道该怎么解决了😟 很难受

增加交换分区试试

  • 第一个报错,是因为 ES 的默认内存大于 1G,所以需要调整 JVM 的-Xms-Xmx参数
  • 第二个报错,没有遇到过,但是-Xmx后面的单位可以用 m,如-Xmx128m

1 个 G 是足够跑的。我一般也是分配 256M 的

songlipeng2003 回复

你是以前在 1G 的电脑上跑过么?能否给下跑的版本号?你那个内存也是在 /jvm.options这个文件里改

-Xms2g 
-Xmx2g

这样子么 貌似 elasticsearch 有很多配置文件啊 我把/jvm.options里的注释掉后新建/usr/share/elasticsearch/config 里面写-Xms256m没有报内存不够,但是告诉我没有配置log4j2 我有点慌,暂时搁置了,你是在哪个文件里改的啊

5.* 版本以后对内存需求又加大了。
之前我用的是 2G 的内存,也设置了 -Xms 和 -Xmx 及网站搜到的一些配置,但偶尔还是会崩溃。来来回回折腾...
后面不想折腾,升到 4G .... 目前一直运行良好,没出过问题。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号