.wslconfig文件须置于C:Users\目录下且无.txt后缀,修改后需执行wsl --shutdown并验证wsl -l -v状态,再通过free -h确认内存配置是否生效,注意路径、编码、大小写及Docker状态栏数值的正确理解。

确认 .wslconfig 文件位置和命名是否正确
文件必须放在 C:Users\.wslconfig,且不能带 .txt 后缀。记事本默认会加后缀,保存时若看到文件图标是带小纸片的文档图标,说明实际是 .wslconfig.txt ——这种命名完全无效。解决方法:在文件夹选项中勾选“显示文件扩展名”,手动重命名为 .wslconfig(开头的点不能漏)。
必须执行 wsl --shutdown 才能加载新配置
wsl --shutdown 是唯一能让 WSL2 重新读取 .wslconfig 的操作。只重启 Docker Desktop 或 Windows 不起作用。执行后建议再运行 wsl -l -v 确认所有发行版状态为 Stopped;如果仍有 Running,说明 shutdown 失败,可能被后台进程(如 VS Code 的 WSL 连接、PowerShell 中未关闭的 Ubuntu 窗口)锁住。
检查 WSL2 是否真按配置启动
启动任意一个 WSL2 发行版(比如 Ubuntu),运行:free -h
看 Mem: 行的 total 值是否接近你设的 memory=4GB 或 8GB。如果还是显示 12GB+,说明配置根本没加载。常见干扰项包括:
• C:WindowsSystem32wslconfig 或其他路径下存在同名文件(WSL 只认用户目录下的那个)
• 配置文件里有不可见 Unicode 字符或中文标点(用 Notepad++ 或 VS Code 查看编码,确保是 UTF-8 无 BOM)
• [wsl2] 段落写成了 [WSL2] 或 [wsl](大小写和拼写必须严格匹配)
Docker Desktop 底部状态栏数值不等于 .wslconfig 设置值?这是正常现象
鼠标悬停在任务栏 Docker 图标上显示的 “Memory usage” 是当前 WSL2 实际占用量,不是上限。它会在你设的上限值附近浮动(比如设了 memory=6GB,实际显示 5.2–5.9GB)。只要不再无节制涨到 10GB+、且 free -h 总内存符合预期,就代表生效了。别盯着那个实时数字较真——它反映的是使用水位,不是水池容量。











