问题环境,OS版本:CentOS release 6.9 (Final) ;ES版本:elasticsearch-7.4。
1、max file descriptors
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
ulimit -Hn ulimit -Sn
修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
* soft nofile 65536 * hard nofile 65536
2、max number of threads
max number of threads [3818] for user [es] is too low, increase to at least [4096]
问题同上,最大线程个数太低。
修改配置文件/etc/security/limits.conf 和 /etc/security/limits.d/90-nproc.conf ,增加配置
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
修改后的文件:
3、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生效
4、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
6、后台运行
最后还有一个小问题,如果你在服务器上安装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