Elasticsearch 合理内存分配

Elasticsearch默认安装后设置的内存是1GB,对于任何一个业务部署来说,这个都太小了。如果你正在使用这些默认堆内存配置,你的集群配置可能有点问题。

一:简单处理方式

这里有两种方式修改Elasticsearch的堆内存(下面就说内存好了),最简单的一个方法就是指定ES_HEAP_SIZE环境变量。服务进程在启动时候会读取这个变量,并相应的设置堆的大小。举例,你可以用下面的命令设置它

[elastic@izwz99z5o9dc90keftqhlrz elasticsearch-5.3.5-node1]$ clear
[elastic@izwz99z5o9dc90keftqhlrz elasticsearch-5.3.5-node1]$ export ES_HEAP_SIZE=5000m
 

此外,你也可以通过命令行参数的形式,在程序启动的时候把内存大小传递给它:

./bin/elasticsearch -Xmx5000m -Xms5000m

其实用这个就可以了
[elastic@izwz99z5o9dc90keftqhlrz elasticsearch-5.3.5-node1]$ ./bin/elasticsearch -d

下面这个命令的参数数据并不生效
[elastic@izwz99z5o9dc90keftqhlrz elasticsearch-5.3.5-node1]$ ./bin/elasticsearch -Xmx5000m -Xms5000m -d

备注:确保Xmx和Xms的大小是相同的,防止程序在运行时改变大小,这个是很废的。

一般来说设置ES_HEAP_SIZE环境变量,比直接写-Xmx5000m -Xms5000m更好一点。

elastic  25330  3.2 22.6 3829836 425868 pts/1  Sl   20:39   0:21 /usr/local/jdk1.8.0_172/bin/java -Xms5000m -Xmx5000m -Xss256k -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Delasticsearch -Des.path.home=/home/elastic/elasticsearch-5.3.5-node1 -cp :/home/elastic/elasticsearch-5.3.5-node1/lib/elasticsearch-5.3.5.jar:/home/elastic/elasticsearch-5.3.5-node1/lib/*:/home/elastic/elasticsearch-5.3.5-node1/lib/sigar/* org.elasticsearch.bootstrap.Elasticsearch
elastic  28757  0.0  0.0 155332  1868 pts/1    R+   20:50   0:00 ps aux

二:推荐处理方式

推荐写入到全局的环境变量中:root
[root@iZ23evimvf8Z ~]# vi /etc/profile

加入这一句:
export ES_HEAP_SIZE=5g

保存,退出。然后以后的启动都将自动加载5g这个值。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章