
WSL 性能调优3 处配置让 ls 从 30 秒变 3 秒【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSL凌晨两点你在 WSL 终端里敲了一个ls /mnt/c光标转了三十秒还没回来。这不是玄学——WSL 性能调优要做的就是把这种卡变成能定位、能改。这个项目把 Windows 侧的服务和 Linux 发行版装在同一个体系里跑默认参数偏保守但每个慢点都有对应的开关你只需要找到属于你的那一个。先做三个自检定位 WSL 卡在哪一环别急着改配置先对号入座wsl -l -v # 确认是 WSL1 还是 WSL2 free -m # 看内存实际占用 time wsl -e true # 测一次启动耗时wsl -l -v的 VERSION 列显示 2才谈得上下面的内存和交换区设置显示 1 的话升级发行版比调参数有用得多。free -m里 available 长期低于 1GB是资源分配问题看场景一。启动耗时超过 10 秒大概率是开机项问题跳场景三。代码目录在/mnt/c下那 IO 慢是结构性的见场景二。场景一天天跑 Docker、虚拟机把内存吃满的人Docker Desktop 的容器其实跑在一台 Hyper-V 轻量虚拟机里而这台虚拟机默认能拿到的内存是你物理内存的一半。机器 16GBWSL 就能占到 8GBWindows 侧开始疯狂换页于是跑着跑着就卡。改哪个文件%USERPROFILE%\.wslconfig没有就新建加两行[wsl2] memory4GB swap2GB这两个参数由 wslservice 在启动虚拟机时读取并下发所以改完必须wsl --shutdown再重新打开才生效——直接开新终端不算重启。验证重开后再跑free -mtotal 应该正好是你设的 4GB。顺手加一行localhostForwardingtrueWSL 里的服务在浏览器里直接用 localhost 访问省掉手动记虚拟机 IP 的麻烦。场景二代码仓库放在 Windows 盘的人这是最容易翻车的一环。/mnt/c下的文件走跨系统挂载WSL2 里底层经 plan9/virtiofs 通道进出机制在 drvfs 文档 里写得很清楚每个文件操作都要过一道 Windows 内核ls转圈多半就转在这。改哪个文件发行版内的/etc/wsl.conf加一行让挂载带上元数据[automount] optionsmetadata它解决的是 chmod、chown 这些权限操作真正生效的问题救不了慢本身。真正的解法是搬家把仓库 clone 到 WSL 内部的/home下Windows 侧用 VS Code Remote 连进去编辑形成编辑在 Windows、跑在 WSL的分工。验证对同一个仓库分别在两个目录里跑time git status差距通常是十倍起步。场景三多发行版来回切、开机项越攒越多的人装过的发行版越多默认那台机器的开机项就越长。开了 systemd 之后启动单元动辄上百个开发机真正需要的可能只有十几个。改哪个文件/etc/wsl.conf里先确认 systemd 已开启[boot] systemdtrueWSL 对 systemd 的启动方式是 fork 出/sbin/init再等它就绪细节见 systemd 文档所以启动等待和服务数量直接挂钩。进系统跑systemctl list-unit-files --typeservice --stateenabled看清单打印机、蓝牙这类用sudo systemctl disable干掉即可。验证time wsl -e true连测三次取最好成绩通常能从十几秒压到个位数。踩坑实录有人把memory设成 8GB 还抱怨 Windows 更卡——虚拟机内存是启动时就预留的设得比物理内存还大等于还没跑就把页文件挤爆了。设成物理内存的三四成比较稳。我实测时还踩过一个改完.wslconfig直接开新终端参数纹丝不动。这个文件只在虚拟机冷启动时读一次wsl --shutdown才是它对应的保存并重启之后一切正常。还有个反直觉的swapFile默认写在 C 盘Windows 和 WSL 抢同一条盘道把它指到 D 盘Windows 侧的磁盘 IO 反而干净了两者同时变快。一页速查改什么文件加什么解决什么验证方式内存上限%USERPROFILE%\.wslconfigmemory4GBWindows 内存紧张free -m交换区同上swap2GB内存峰值超限发行版内top交换区位置同上swapFileD:\wsl-swap.vhdxC 盘 IO 挤占观察 C 盘占用端口转发同上localhostForwardingtrue服务要手动记 VM IP浏览器开 localhost:3000挂载元数据发行版内/etc/wsl.confoptionsmetadatachmod/chown 不生效chmod 后ls -l开机服务同上 systemdsystemdtruesystemctl disable启动慢time wsl -e true以上每项改完都要wsl --shutdown重开才生效。这套配置全部来自 WSL 开源仓库 main 分支的.wslconfig与/etc/wsl.conf官方配置接口。【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考