wsl 开发环境中完美解决 vm.max_map_count [65530] is too low

  Win10环境用WSL+Docer搭建ElasticSearch集群时,肯定会报这样一个错误:

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

   当前docker-desktop运行实例解决方案如下:

$ wsl -d docker-desktop
$ sysctl -w vm.max_map_count=262144

  不少人应该都试过这样来设置,但是令人疑惑的是为啥WSL重启或电脑重启后就不起效了?

  因为这个解决方案是在当前运行时起作用,每次重启wsl或服务器,WSL会创建一个新的运行实例,初始化后的 vm.max_map_count就是65530

  要想彻底解决这个问题,就要从wsl初始化入手:  

# 创建.wslconfig文件
> cd C:\Users\Administrator\
> '[wsl2]' >> .wslconfig
> 'kernelCommandLine = "sysctl.vm.max_map_count=262144"' >> .wslconfig
# 重启wsl
> wls --shutdown
> wls -d docker-desktop sysctl vm.max_map_count
# 如果输出以下内容,说明设置成功,再也不怕重启了
vm.max_map_count = 262144

  参考网址:elasticsearch - Using Docker-Desktop for Windows, how can sysctl parameters be configured to survive a reboot? - Stack Overflow

 

posted @ 2023-11-10 13:35  MissBug  阅读(357)  评论(0编辑  收藏  举报