简述
距离上一篇docker安装elasticsearch踩坑的网站已经过了快一年,时间过的真快,技术变革都不懂到哪个层面。
问题阐述
本来还想着用以前elasticsearch的5.3版本苟活,奈何自己现在使用的是springboot2.1.6,死活连不上elasticsearch5,无奈下只好升级使用elasticsearch6,结果一运行不到两秒就被整垮了(小声bb),看了看日志,报错
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
大概意思就是用户拥有的内存权限太少了,max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。
我们可以执行命令查看
sysctl -a|grep vm.max_map_count
红色字体确实表示我们只有65530
解决方法
- 直接在服务器里执行下面命令重新设置
sysctl -w vm.max_map_count=262144
不过据说这种方法重启后会失效,因为我的是云服务器,所以一般不重启,暂且用着这种方法先。
- 修改系统文件
修改/etc/sysctl.conf
在其最后一行添加
vm.max_map_count=262144
然后执行命令使其生效
/sbin/sysctl -p
据说这个是永久的。
参考博客
elasticSearch Docker启动报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
linux参数之max_map_count