问题

在使用基于 WSL 的 Docker 的时候,启动 ES 总是会出现 vm.max_map_count 65530 is too low 问题,导致容器无法启动,网上答案基本就两种,例如 stackoverflow 这个链接给出的答案是:

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

值得注意的是,以上修改只在当前会话有效,重启 Windows 和 WSL 都要重新设置,后面作者也给出回答:

If you want to set this permanently, you need to edit /etc/sysctl.conf and set vm.max_map_count to 262144.

但是该设置在 WSL 中并不生效,因为 WSL 并不会读取 /etc/sysctl.conf 配置文件

解决方案

在尝试 N 种方案没有效果后,决定另辟蹊径,从其他方面考虑,既然每次启动都要执行 sysctl -w vm.max_map_count=262144 命令,那就想办法让它自动执行。通过以下两种方式可以实现

一:在 WSL2 ubuntu 里面设置启动参数,命令如下:

$ vim /etc/init.wsl
#! /bin/sh
sysctl -w vm.max_map_count=262144

然后切回到 Windows 中,创建文件,并且加入以下内容:

Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d Ubuntu-20.04 -u root /etc/init.wsl"

以上的 Ubuntu-20.04 可以改为你的 WSL Linux 发行版名称,你可以通过 wsl --list 查看

然后将文件通过 *.vbs 格式保存,例如我的是 WSL-linux-start.vbs 文件,然后按 "Win + R" 输入 shell:startup 打开启动目录,将 *.vbs 放入即可,如下:

验证

通过以上设置,在重启电脑后,打开 WSL 输入命令,可以看到分配的虚拟内存为 262144:

$ sysctl vm.max_map_count
vm.max_map_count = 262144

这样就解决了每次启动都需要重复输入命令的问题了

永久解决 WSL vm.max_map_count 65530 is too low 的问题的更多相关文章

  1. max virtual memory areas vm.max_map_count 65530 is too low的解决办法

    解决办法 /etc/sysctl.conf加上 vm.max_map_count = 262144 使配置永久生效 执行: sysctl -w vm.max_map_count=262144 使配置立 ...

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

    elasticsearch启动时遇到的错误 问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144: 解决: 切换到root用户 执行命令: sysctl -w vm ...

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

    sh- /etc/sysctl.conf vm.max_map_count = #在/etc/sysctl.conf追加上面一条 #并执行命令: sysctl -p

  4. k8s 部署elasticsearch报 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    1.由于登不上云的节点 不采用修改节点配置的方式 修改部署的stateful 加上 initContainers 它和 containers 同一层级的 initContainers: - name: ...

  5. Docker启动Elasticsearch报错vm.max_map_count

    报错信息如下 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 临 ...

  6. vm.max_map_count

    Virtual memoryedit Elasticsearch uses a hybrid mmapfs / niofs directory by default to store its indi ...

  7. MySQL如何永久解决由dos编码格式导致MySQ的显示乱码

    MySQL如何永久解决由dos编码格式导致MySQ的显示乱码 Ⅰ.新建文件 changeCode.txt Ⅱ.粘贴下面代码(作用:将默认的GBK(936)修改为UTF-8(65001)) Window ...

  8. Docker++:docker运行Tomcat后访问首页报404 (永久解决方式)

    docker运行Tomcat后访问首页报404 与 tomcat 版本有关. 解决方式如下: 1.查看防火墙问题 2.Tomcat 下如果有 webapps.dist 和 webapps 则需要进行合 ...

  9. 永久解决IDEA 连接 mysql时区问题`

    永久解决IDEA 连接 mysql时区问题` 找到mysql的安装路径下的my.ini文件 加入以下代码 [mysqld] default-time_zone='+8:00' 关闭然后保存 打开然后以 ...

  10. 解决wsl不能安装z.sh问题

    z.sh是韦大很推崇的类似autojump的bash插件,能够很方便的寻找目录,然而wsl下不能直接使用,解决方法在其github仓库(z)的issue中找到: Reproduce it at Mic ...

随机推荐

  1. 一文搞清楚Java中的包、类、接口

    写在开头 包.类.接口.方法.变量.参数.代码块,这些都是构成Java程序的核心部分,即便最简单的一段代码里都至少要包含里面的三四个内容,这两天花点时间梳理了一下,理解又深刻了几分. Java中的包 ...

  2. python 基础 | 虚拟环境搭建全流程

    首先,建立 python 虚拟环境 test_env: python3 -m venv test_env # 激活虚拟环境 source ./test_env/bin/activate # linux ...

  3. 分享一个在线二维码生成器(基于qrcode.js开发)

    一种二维码扫描与生成的工具, 它可生成个性化二维码, 支持文本.网址.图片.短信.电话等格式及主题,提供融合码功能 演示地址 https://qrcode.gitapp.cn 关键代码 var qrc ...

  4. 【MicroPython】生成QSTR表 - py\makeqstrdata.py

    转义非字母数字的字符,转义结果为预定义字符串codepoint2name[] def qstr_escape(qst): def esc_char(m): c = ord(m.group(0)) tr ...

  5. 【java】 向上转型的运用

    应用 :求面积 1,抽象类  Geometry . public abstract class Geometry { public abstract double getArea(); } 2,矩形 ...

  6. CSS : object-fit 和 object-position实现 图片或视频自适应

              img {             width: 100%;             height: 300px;             object-fit: cover;   ...

  7. [转帖]WinXP添加TLS1.1、TLS1.2支持

    现象 HTTPS服务在Win7及Win10能够正常打开,但是在XP下用IE浏览器却无法打开,XP下用第三方浏览器(我试了谷歌浏览器)却能正常打开.经过抓包分析,用IE浏览器是协商用的是TLS1而用第三 ...

  8. [转帖]tidb数据库5.4.3和6.5.3版本性能测试对比

    https://tidb.net/blog/5454621f   一.测试需求: 基于历史原因,我们的业务数据库一直使用5.4.3,最近由于研发提出需求:需要升级到6.5.3版本,基于版本不同,需要做 ...

  9. [转帖]GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目JeecgBoot有点强

    GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目JeecgBoot有点强 https://www.cnblogs.com/05-hust/p/14515686.html 一 ...

  10. [转帖]goproxy的设置

    goproxy.io 是全球最早的 Go modules 镜像代理服务之一 [大陆地区建议使用 proxy.golang.com.cn],采用 CDN 加速服务为开发者提供依赖下载, 该服务由一批热爱 ...