elasticsearch傷心幾個月以來每星期都要抽風一次,忽然間查詢很是慢, 看下liunx的內存幾乎被elasticsearch吃了個精光,就身下不到10M的內存。html
開始按照網上給出的解決方案 啓動的時候給es設置我的固定大小的內存 linux
export ES_HEAP_SIZE=10g
./bin/elasticsearch -Xmx10g -Xms10g.
兩種方式都不行 設置以後整個es就啓動不了bootstrap
後來看下下官方給出的建議說是要鎖定內存,因而我打開es配置文件找打一下節點放開app
# 當JVM開始寫入交換空間時(swapping)ElasticSearch性能會低下,你應該保證它不會寫入交換空間 # 設置這個屬性爲true來鎖定內存,同時也要容許elasticsearch的進程能夠鎖住內存,linux下能夠經過 `ulimit -l unlimited` 命令 # bootstrap.mlockall: true # 確保 ES_MIN_MEM 和 ES_MAX_MEM 環境變量設置爲相同的值,以及機器有足夠的內存分配給Elasticsearch # 注意:內存也不是越大越好,通常64位機器,最大分配內存別才超過32G
草。重啓不了了,liunx還有個東西也須要同時配置 打開/etc/security/limits.conf 在最後面加上如下兩行jvm
* soft memlock unlimited
* hard memlock unlimited
* 號表示對全部用戶生效elasticsearch
以上操做暫時解決了內存問題 ,若是還不行繼續一下操做ide
以後我仍是在es的配置文件 config/jvm.options 中對性能
-Xms2g
-Xmx2gui
2個配置節點進行了修改 改爲了 20gspa
設置成20g以後直接卡成狗了 因此我改回去以後 設置內存交換參數終於不卡了,貌似內存仍是佔多
打開liunx配置文件 /etc/sysctl.conf 修改內存交換參數 在最後一行增長
vm.swappiness=1
參考 https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html