在 Windows 上设置 vm.max_map_count 参数

在 Windows 上设置 vm.max_map_count 参数

在 Windows 上设置 vm.max_map_count=262144 参数(常用于 Elasticsearch)的方法取决于您使用的 Docker 环境类型。以下是针对不同 Docker 环境的设置方法:

Docker Desktop (WSL 2 后端)

如果您使用的是基于 WSL 2 的 Docker Desktop(推荐且是最新版默认配置):

  1. 创建或修改 WSL 配置文件

    在 PowerShell 或命令提示符中运行:

    # 创建 WSL 配置目录(如不存在)
    New-Item -Path "$env:USERPROFILE\.wslconfig" -ItemType File -Force
    
  2. 编辑 .wslconfig 文件

    使用记事本或任何文本编辑器打开 %USERPROFILE%\.wslconfig 文件,添加或修改为:

    [wsl2]
    kernelCommandLine = sysctl.vm.max_map_count=262144
    
  3. 重启 WSL

    在 PowerShell 或命令提示符中运行:

    wsl --shutdown
    
  4. 重启 Docker Desktop

在 WSL 中直接设置(临时方法)

如果上述方法不起作用,可以在 WSL 中直接设置:

  1. 打开 WSL 终端

    wsl
    
  2. 在 WSL 中设置参数

    sudo sysctl -w vm.max_map_count=262144
    
  3. 验证设置

    sysctl vm.max_map_count
    

在 WSL 中永久设置

在 WSL 发行版中永久设置:

  1. 打开 WSL 终端

    wsl
    
  2. 编辑 sysctl.conf 文件

    sudo nano /etc/sysctl.conf
    
  3. 添加以下行

    vm.max_map_count=262144
    
  4. 保存并退出:按 Ctrl+O,然后 Enter,再按 Ctrl+X

  5. 应用设置

    sudo sysctl -p
    
  6. 重启 WSL

    # 在 Windows PowerShell 中执行
    wsl --shutdown
    

使用 Docker Toolbox 或旧版 Docker Machine(不推荐)

如果使用的是旧版基于 VirtualBox 的 Docker:

  1. 通过 SSH 连接到 Docker Machine:

    docker-machine ssh default
    
  2. 设置参数:

    sudo sysctl -w vm.max_map_count=262144
    
  3. 永久设置:

    echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
    

验证设置是否生效

设置完成后,可以在 WSL 或 Docker 环境中验证设置是否生效:

sysctl vm.max_map_count

输出应该显示:vm.max_map_count = 262144

这个设置对于运行 Elasticsearch 容器尤其重要,它需要较高的 vm.max_map_count 值以正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值