sysctl -w vm.max_map_count=262144
来增加mmap计数到262144。C:\Users\<username>>wsl -d docker-desktop
<hostname>:/tmp/docker-desktop-root/mnt/host/c/Users/<username># sysctl -w vm.max_map_count=262144
在回答这个问题和Elastic的文档中建议相应地更新
/etc/sysctl.conf
中的vm.max_map_count
,以使该值永久生效,即在重启后仍然有效。请注意下面的输出,显示有效的mmap计数没有适应sysctl.conf中定义的值,在我尝试遵循这个建议并重新启动后仍然如此。
为什么会这样呢?
PS C:\Users\<username>> wsl -d docker-desktop
<hostname>:/tmp/docker-desktop-root/mnt/host/c/Users/<username># sysctl vm.max_map_count
vm.max_map_count = 65530
<hostname>:/tmp/docker-desktop-root/mnt/host/c/Users/<username># cd /etc
<hostname>:/etc# cat sysctl.conf
# content of this file will override /etc/sysctl.d/*
vm.max_map_count=262144
考虑到在
etc/
中更改了错误的sysctl.conf,我尝试在<hostname>:/tmp/docker-desktop-root/etc#
中更改sysctl.conf。
由于这是一个只读文件系统
,所以不允许这样做。如果可以的话,是否应该将其参数化到.wslconfig中?如果可以,请告知如何操作。
使用openSUSE Leap 15.2而不是Win10的PowerShell并没有改变结果。
<username@hostname>:~> sysctl vm.max_map_count
vm.max_map_count = 65530
<username@hostname>:~> cat /etc/sysctl.conf
####
#
# /etc/sysctl.conf is meant for local sysctl settings
#
# sysctl reads settings from the following locations:
# /boot/sysctl.conf-<kernelversion>
# /lib/sysctl.d/*.conf
# /usr/lib/sysctl.d/*.conf
# /usr/local/lib/sysctl.d/*.conf
# /etc/sysctl.d/*.conf
# /run/sysctl.d/*.conf
# /etc/sysctl.conf
#
# To disable or override a distribution provided file just place a
# file with the same name in /etc/sysctl.d/
#
# See sysctl.conf(5), sysctl.d(5) and sysctl(8) for more information
#
####
vm.max_map_count=262144
值得注意的是,上述sysctl.conf文件中的标题引用了一个
/boot/sysctl.conf-
。考虑到在启动时可能需要定义mmap计数,我尝试在该文件中设置所需的参数,但是没有权限这样做。<username@hostname>:/boot> sudo echo 'vm.max_map_count=262144' >> sysctl.conf-5.10.16.3-microsoft-standard-WSL2
-bash: sysctl.conf-5.10.16.3-microsoft-standard-WSL2: Permission denied
在openSUSE:WSL - openSUSE Wiki中报告的已知问题和限制之一是:
WSL中的系统实际上不会启动,也不使用systemd。一个专有的Microsoft /init二进制文件初始化系统。因此,服务管理不像在虚拟机中那样工作。它更像是一个交互式容器。
有人可以验证这是否是参数化sysctl.conf无法有效实现目标的原因吗?
系统
主机:
操作系统:Microsoft Windows 10 Enterprise
版本:10.0.18363 Build 18363 \
客户端:
版本: 20.10.8
API 版本: 1.41
Go 版本: go1.16.6
Git 提交: 3967b7d
构建时间: Fri Jul 30 19:54:02 2021
操作系统/架构: linux/amd64
插件:
compose: Docker Compose (Docker Inc., v2.0.0-rc.2)
scan: Docker Scan (Docker Inc., v0.8.0)
服务器:
引擎:
版本:20.10.8
API 版本:1.41(最低版本 1.12)
Go 版本:go1.16.6
Git 提交:75249d8
构建时间:2021年7月30日星期五 19:52:10
操作系统/架构:linux/amd64
containerd:
版本:1.4.9
Git 提交:e25210fe30a0a703442421b0f60afac609f950a3
runc:
版本:1.0.1
Git 提交:v1.0.1-0-g4144b63
docker-init:
版本:0.19.0
Git 提交:de40ad0
内核版本:5.10.16.3-microsoft-standard-WSL2
操作系统:Docker Desktop
操作系统类型:linux
架构:x86_64
CPU 数量:4
总内存:12.39GiB
名称:docker-desktop