「wsl慢,wsl慢」 如何破解CPU/内存吸血鬼?

「wsl慢,wsl慢」 CPU/内存吸血鬼

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

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

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

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


解决方案

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

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

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

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

bash 复制代码
 # PowerShell
 cd $env:USERPROFILE
 New-Item -Path '.wslconfig' -ItemType File

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

bash 复制代码
 # PowerShell
 code .wslconfig

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

ini 复制代码
 # 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 的终端,然后将其关闭以避免运行命令时数据损坏。

perl 复制代码
 # PowerShell
 wsl --shutdown

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

bash 复制代码
 # PowerShell
 mkdir D:\backup
 wsl --export Ubuntu D:\backup\ubuntu.tar

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

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

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

更新

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

css 复制代码
 # PowerShell
 wsl --update
 wsl --update --pre-release

配置

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

bash 复制代码
 # PowerShell
 code .wslconfig

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

ini 复制代码
 [experimental]
 ​
 # Automatic memory reclaim
 autoMemoryReclaim=gradual
 ​
 # Automatic disk space clean up
 sparseVhd=true

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


选择

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

跨文件系统的文件存储和性能

建议不要跨操作系统使用文件,除非有这么做的特定原因。 若想获得最快的性能速度,请将文件存储在 WSL 文件系统中,前提是在 Linux 命令行(Ubuntu、OpenSUSE 等)中工作。 如果使用 Windows 命令行(PowerShell、命令提示符)工作,请将文件存储在 Windows 文件系统中。

例如,在存储 WSL 项目文件时:

  • 使用 Linux 文件系统根目录:\wsl$\Ubuntu\home<user name>\Project
  • 而不使用 Windows 文件系统根目录:/mnt/c/Users/<user name>/Project$C:\Users<user name>\Project

在 WSL 命令行的文件路径中看到 /mnt/ 时,表示你正在使用已装载的驱动器。 因此,Windows 文件系统 C:/ 驱动器 (C:\Users<user name>\Project) 在 WSL 命令行中装载时将如下所示:/mnt/c/Users/<user name>/Project$。 可以将项目文件存储在装载的驱动器上,但如果将其直接存储在 \wsl$ 驱动器上,性能速度会提高。

参考官方文档跨文件系统工作 | Microsoft Learn


折腾使你进步!!!🤪

相关推荐
热爱嵌入式的小许2 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
yufei-coder4 小时前
掌握 C# 中的 LINQ(语言集成查询)
windows·vscode·c#·visual studio
_小猪沉塘4 小时前
L11&12&13 【哈工大_操作系统】内核级线程&内核级线程实现&操作系统之“树”
操作系统
韩楚风6 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学6 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO6 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu77 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我7 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、7 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程7 小时前
Linux中环境变量
linux