1. Posts/

「wsl慢,wsl很慢」 如何解决 wsl 慢的问题?

·224 字·2 分钟· loading
windows windows wsl wsl2 ZSH
demo007x
作者
demo007x
windows - This article is part of a series.
Part : This Article

「wsl慢,wsl很慢」 如何解决 wsl 慢的问题?
#

你一定见过ChromeAndroid Studio关于内存和 CPU 巨大消耗的情况。

图片描述

嗯…我认为我们有一个新的「王者」。

国王已死,新国王万岁。 陛下:**WSL!**👑

这是因为有一个 已知问题 “WSL 2 消耗大量 RAM”

不酷


解决方案
#

这不是一个确定的解决方案,但我们可以使用一些 高级配置来设置 WSL来限制他的资源。

接下来的所有工作都需要在 PowerShell(Windows 端)上完成。

首先,我们需要关闭所有正在使用 WSL 的终端,然后将其关闭以避免运行命令时数据损坏wsl --shutdown

.wslconfig在Windows用户配置文件路径下创建一个文件。

# PowerShell
cd $env:USERPROFILE
New-Item -Path '.wslconfig' -ItemType File

使用 VSCode(或任何您喜欢的编辑器)打开此文件

# PowerShell
code .wslconfig

并设置可以占用的最大资源量的限制(根据您的需要)。例如:

# Settings apply across all Linux distros running on WSL 2
[wsl2]

# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
memory=4GB 

# Sets the VM to use two virtual processors
processors=2

# Sets amount of swap storage space to 8GB, default is 25% of available RAM
swap=8GB

# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
swapfile=D:\\WSL\\wsl-swap.vhdx

# Turn off default connection to bind WSL 2 localhost to Windows localhost
localhostforwarding=true

有关更多 WSL 高级配置,请查看文档。

保存文件并重新启动 WSL 运行wsl命令。

顶部

无论 Linux 内存使用情况如何,它仍然会消耗整个 4GB,并且只有 2 个虚拟处理器,但至少它不会再增长更多。

实验性的
#

WSL 有一个新的实验版本,可以更好地管理内存。

所有后续步骤都需要在 PowerShell(Windows 端)上完成。

备份
#

首先,我们需要关闭所有正在使用 WSL 的终端,然后将其关闭以避免运行命令时数据损坏。

# PowerShell
wsl --shutdown

接下来,我们将从UbuntuLinux 发行版创建备份。

# PowerShell
mkdir D:\backup
wsl --export Ubuntu D:\backup\ubuntu.tar

如果您没有看到进度指示器,请不要担心。这可能需要一段时间,具体取决于您拥有的数据量。

看过前面几篇文章的童鞋知道现在是休息时间。

等待

完成后,首先,更重要的是确保D:\backup\ubuntu.tar文件存在。

更新
#

⚠️ 请注意,WSL 驱动器上存储的所有内容都可能会丢失,并且该命令不会要求确认,因此请确保先备份所需的所有内容!

# PowerShell
wsl --update
wsl --update --pre-release

配置
#

.wslconfig使用 VSCode(或任何您喜欢的编辑器)再次打开文件

# PowerShell
code .wslconfig

并设置实验标志(根据您的需要)。例如:

[experimental]

# Automatic memory reclaim
autoMemoryReclaim=gradual

# Automatic disk space clean up
sparseVhd=true

最后使用wslwsl --distribution <DistroName>命令重新启动 WSL。


选择
#

如果 WSL 仍然存在问题,您可以使用 Git Bash。它不是像 WSL 那样的“真正的”Linux 发行版,但它是在 Windows 内模拟Unixish环境的一个很好的替代方案。


折腾使你进步!!!🤪

windows - This article is part of a series.
Part : This Article

Related

ZSH!在 Windows 上使用 WSL+ZSH
windows windows wsl wsl2 ZSH
ZSH!在 Windows 上使用 WSL+ZSH
在 WSL 上升级 Ubuntu 版本
windows windows wsl wsl2
在 WSL 上升级 Ubuntu 版本
将 WSL 文件系统移动到另一个驱动器
windows windows wsl wsl2
如果C:驱动器空间不足,或者您希望将文件放在与操作系统不同的磁盘上,我们可以通过几个步骤将WSL2文件系统移动到另一个驱动器。