elasticsearch傷心幾個月以來每星期都要抽風一次,突然間查詢非常慢, 看下liunx的內存幾乎被elasticsearch吃了個精光,就身下不到10M的內存。
開始按照網上給出的解決方案 啟動的時候給es設置個人固定大小的內存
export ES_HEAP_SIZE=10g
./bin/elasticsearch -Xmx10g -Xms10g.
兩種方式都不行 設置之后整個es就啟動不了
后來看下下官方給出的建議說是要鎖定內存,於是我打開es配置文件找打一下節點放開
# 當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 在最后面加上以下兩行
* soft memlock unlimited
* hard memlock unlimited
* 號表示對所有用戶生效
以上操作暫時解決了內存問題 ,如果還不行繼續一下操作
之后我還是在es的配置文件 config/jvm.options 中對
-Xms2g
-Xmx2g
2個配置節點進行了修改 改成了 20g
設置成20g之后直接卡成狗了 所以我改回去之后 設置內存交換參數終於不卡了,貌似內存還是占多
打開liunx配置文件 /etc/sysctl.conf 修改內存交換參數 在最后一行增加
vm.swappiness=1
參考 https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html
