问题
今天在在Linux上安装Elasticsearch服务器的时候,配置好完成之后,启动es服务器,总是启动到一半就被killed掉,找了半天的问题,查看日志也没有错误。
后来发现是内存不够了,由于ES是运行在JVM上,JVM本身除了分配的heap内存以外,还会用到一些堆外(off heap)内存。 在小内存的机器上跑ES,如果heap划分过多,累加上堆外内存后,总的JVM使用内存量可能超过物理内存限制。 如果swap又是关闭的情况下,就会被操作系统oom killer杀掉。
原来是本身机器内存不够大,只有1G内存,而es中的jvm配置文件中,就配置了1g的堆大小,导致没有足够空间分配,故es启动不起来。
解决办法
更改 jvm.options 文件:
改为合适的大小即可: