windows子系统wsl使用

本文最后更新于 2023年9月22日。

简介
通过重启windows达到重启wsl太耗费时间,但是wsl又不能通过reboot达到重启的目的

常用命令

解决方法
管理员权限打开powershell ,然后执行下面命令

关闭服务

net stop LxssManager

重启服务

net start LxssManager

我的操作记录:

(base) PS C:\Users\weiyo> wsl --status
默认分发:docker-desktop
默认版本:2
适用于 Linux 的 Windows 子系统最后更新于 2022/10/25
适用于 Linux 的 Windows 子系统内核可以使用“wsl --update”手动更新,但由于你的系统设置,无法进行自动更新。
若要接收自动内核更新,请启用 Windows 更新设置:“在更新 Windows 时接收其他 Microsoft 产品的更新”。
有关详细信息,请访问https://aka.ms/wsl2kernel。
内核版本: 5.10.16
(base) PS C:\Users\weiyo> net stop LxssManager
LxssManager 服务正在停止.
LxssManager 服务已成功停止。
(base) PS C:\Users\weiyo> net start LxssManager
请求的服务已经启动。
请键入 NET HELPMSG 2182 以获得更多的帮助。

这时候docker已经停止运行了,需要在docker desktop中重启。
Vemmem占用内存有时会很大,需要在用户文件夹创建.wslconfig文件,写入以下内容:

1.  [wsl2]
2.  # 设置内存为2G,主要是服务docker
3.  memory=2GB
4.  # CPU 最大占用个数
5.  processors=2
6.  # 不设置WSL2虚拟机分配的交换空间
7.  swap=0
8.  # 允许将WSL2的端口转发到主机
9.  localhostForwarding=true

一、限制VM的内存使用

  1. 按下Windows + R 键,输入 %UserProfile% 并运行进入用户文件夹
  2. 新建文件 .wslconfig ,然后使用记事本编辑
  3. 填入以下内容并保存, memory为wsl2分配的内存上限,可根据自身电脑配置设置
[wsl2]
memory=2GB  # Limits VM memory in WSL 2GB, also can be set to other values
swap=0
localhostForwarding=true
processors=2 # Makes the WSL 2 VM use two virtual processors, also can be set to other values

设置该文件并重新启动WSL后,不管vmmem内存使用情况如何,仍然会消耗掉限额的内存,但至少它不会再继续增长了,也可以设置为其他值,如512MB、1GB等,即可以将其控制在某个范围之内。

二、关掉WL2 VM

在不使用WSL2时,在PowerShell执行wsl --shutdown,从而关掉WL2 VM。

221027
这个限制实际作用不大
在github找到解决办法了, 把.wslconfig文件删了 , 然后在用户目录打开CMD , 输入 code .wslconfig , 似乎和文件格式有关系, 
wslconfig file being ignored · Issue #6728 · microsoft/WSL