查看日志报错如下:ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题描述:
ElasticSearch安装完成之后,在浏览器地址栏输入:http://192.168.163.130:9200/显示无法访问该网站。
而且Linux虚拟机CPU占用非常高,这是由于JVM虚拟机内存太小,导致垃圾回收不断触发导致的性能耗用。
虚拟机配置和宿主机性能情况图:
虚拟机使用top命令可以看到CPU耗用高:
宿主机CPU耗用高,笔记本扇热风扇狂转:
解决方案:
原因是vm虚拟机的内存默认分配的太低了,导致elasticsearch容器启动失败。报错信息提示vm.max_map_count[65530]太低,至少需要262144。
操作步骤:
# ElasticSearch启动时遇到的错误:max virtual memory areas vm.max_count(65530) is too low...
# 问题翻译过来就是:最大虚拟机内存区域(堆)太小,至少需要262144
# 解决步骤:
# 1.查看堆最大内存配置情况
sysctl -a|grep vm.max_map_count
# 2.执行命令(需要有root权限)修改堆内存配置:
sysctl -w vm.max_map_count=262144
# 3.查看修改结果:
sysctl -a|grep vm.max_map_count
# 3.会显示如下信息:
vm.max_map_count = 262144
# 注意:
# 上述方法修改之后,如果重启虚拟机将失效,所以一劳永逸的解决办法:
# 在/etc/sysctl.conf文件的最后添加一行代码:
# 操作步骤:
# cd /etc/
# vi sysctl.conf
# 按i进入编辑模式,修改完后按esc键,输入":wq"保存退出
vm.max_map_count=262144
# 即可永久修改
# 然后重新启动ES容器即可
docker restart elasticsearch
操作步骤图:
1.查看堆最大内存配置情况
2.执行命令(需要有root权限)修改堆内存配置:
3.在/etc/sysctl.conf文件的最后添加一行代码:
问题解决之后,在浏览器地址栏输入http://192.168.163.130:9200/可以看到如下图的JSon信息,说明ES启动成功:
ElasticSearch启动成功之后在浏览器地址栏输入:http://192.168.163.130:5601即可访问Kibana,如下图: