max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Elasticsearch在启动时出现错误:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

这个问题是虚拟内存设置问题。在虚拟内存有说明:Elasticsearch默认使用mmapfs类型存储文档。对mmapfs的介绍,Elasticsearch文档也有说明。系统默认是65530,对Elasticsearch远远不够。

  • 解决办法

修改/etc/sysctl.conf,如果文件内有vm.max_map_count项,那么修改值大于或等于报错值262144。如果没有,在末尾追加一行。

修改完之后再终端执行sysctl --system或者sysctl -p使修改生效。检查是否生效可以使用sysctl vm.max_map_count查看。