問題環境,OS版本:CentOS release 6.9 (Final) ;ES版本:elasticsearch-7.4。html
一、max file descriptorsjava
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]bootstrap
每一個進程最大同時打開文件數過小,可經過下面2個命令查看當前數量vim
ulimit -Hn ulimit -Sn
修改/etc/security/limits.conf文件,增長配置,用戶退出後從新登陸生效服務器
* soft nofile 65536 * hard nofile 65536
二、max number of threadsapp
max number of threads [3818] for user [es] is too low, increase to at least [4096]jvm
問題同上,最大線程個數過低。elasticsearch
修改配置文件/etc/security/limits.conf 和 /etc/security/limits.d/90-nproc.conf ,增長配置spa
vim /etc/security/limits.conf * soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536 vim /etc/security/limits.d/90-nproc.conf soft nproc 4096
可經過命令查看線程
ulimit -Hu ulimit -Su
修改後的文件:
三、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增長配置vm.max_map_count=262144
vi /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
執行命令sysctl -p生效
四、Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-6.2.2-1/config/jvm.options
elasticsearch用戶沒有該文件夾的權限,執行命令
chown -R es:es /usr/local/elasticsearch/
5.OpenJDK 64-Bit Server VM warning 問題
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
緣由是JDK9再也不支持UseConcMarkSweepGC,具體狀況以下:
廢棄的GC選項已被移除( JEP 214 )。 在 JDK 8( JEP 173 )中已經棄用了一些詳細的 GC 選項和選項組合。這些將不會被識別,並將致使 JVM 在啓動時停止。要注意的選項以下所示
-XX:-UseParNewGC -XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-Xincgc
-XX:+CMSIncrementalMode -XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode -XX:+UseConcMarkSweepGC -XX:-UseParNewGC
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSFullGCsBeforeCompaction
-XX:+UseCMSCollectionPassing
在 JDK 9 中,concurrent-mark-sweep (iCMS) 的增量模式已被移除,目前的計劃是在 JDK 10 中徹底刪除 CMS。。。
在JVM配置文件中去掉UseConcMarkSweepGC
六、後臺運行
最後還有一個小問題,若是你在服務器上安裝Elasticsearch,而你想在本地機器上進行開發,這時候,你極可能須要在關閉終端的時候,讓Elasticsearch繼續保持運行。最簡單的方法就是使用nohup。
先按Ctrl + C,中止當前運行的Elasticsearch,改用下面的命令運行Elasticsearch
nohup ./bin/elasticsearch&
這樣,你就能夠放心地關閉服務器終端,而不用擔憂Elasticsearch也跟着關閉了。
7.bootstrap.memory_lock: true致使Elasticsearch啓動失敗問題
elasticsearch官網建議生產環境須要設置bootstrap.memory_lock: true
解決辦法以下:
須要修改
/etc/security/limits.conf
baoshan soft memlock unlimited
baoshan hard memlock unlimited
修改:
/etc/sysctl.conf
vm.swappiness=0
以後重啓機器
參考相關博客:https://www.cnblogs.com/zhi-leaf/p/8484337.html