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這個值。

 

 

 

 

 

 

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