[root@localhost /]# docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.1 [root@localhost /]# docker run -d -p 9200:9200 -p 9300:9300 --name es elasticsearch:7.10.1
#启动命令参考 [root@localhost /]# docker run -d -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e discovery.type=single-node --name es elasticsearch:7.10.1
1 2 3
问题1:error='Cannot allocate memory' 原因:ES 5.x+堆内存大小默认配置为2G ES 7.x+默认4G 解决:-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
1 2 3 4 5
问题2:WARNING: IPv4 forwarding is disabled. Networking will not work. 解决: vi /etc/sysctl.conf net.ipv4.ip_forward=1 restart network && systemctl restart docker sysctl net.ipv4.ip_forward
1 2 3 4 5 6 7 8 9
问题3: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] 解释: 5.0以后,ES使用mmapfs作为默认的文件系统存储类型。可以通过配置index.store.type来设置ES默认的文件系统存储类型。 Niofs(非阻塞文件系统) mmapfs(内存映射文件系统) 配置:index.store.type: niofs 解决:sysctl -w vm.max_map_count=262144 查看是否生效: 或:vi /etc/sysctl.conf vm.max_map_count=262144 grep vm.max_map_count /etc/sysctl.conf
1 2 3 4
问题4:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] 解决:vi /etc/security/limits.conf,最后添加以下内容。 * soft nofile 65536 * hard nofile 65536
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
问题5:max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048] 解决: vi /etc/security/limits.d/90-nproc.conf 修改如下内容(注意星号): * soft nproc 1024 => * soft nproc 4096
当引导检查报未开启内存锁时,需要修改一下配置: vi /etc/security/limits.conf,最后添加以下内容。 * soft nofile 65536 * hard nofile 65536 * soft nproc 32000 * hard nproc 32000 * hard memlock unlimited * soft memlock unlimited vi /etc/systemd/system.conf ,分别修改以下内容。 DefaultLimitNOFILE=65536 DefaultLimitNPROC=32000 DefaultLimitMEMLOCK=infinity 注意 修改操作系统配置需要重启系统才能生效,如果宿主机内存过小,可能导致容器无法启动。开发模式内存建议4G以上,生产建议32G以上.