WSL2是基于 Hyper-V 的虚拟化技术,因此,WSL2 的性能比 WSL1 更高。但是,WSL2 的性能仍然比宿主机性能要差。你以为你在运行Linux,其实你是在运行 Windows Defender。习惯使用Linux的用户,使用WSL2 还是很方便,如果安装了docker,那么docker 也可以运行在WSL2 上,可以说是打通生态链了。也可以用到宿主机的显卡和MPS,还可以在WSL2上运行GUI 应用。所有优化WSL还是很必要的。
使用固定大小的虚拟磁盘
WSL2 默认使用动态扩展的虚拟磁盘,这会导致磁盘空间不足的问题。你可以使用固定大小的虚拟磁盘来避免这个问题。(这个我一直导入没成功,有成功的朋友分享下经验)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| wsl --export Ubuntu-24.04 G:\wsl.tar
wsl --unregister Ubuntu-24.04
# 使用 PowerShell 创建一个新的 VHD 文件。假设创建一个 20GB 的 VHD 文件 New-VHD -Path G:\wsl\ubuntu_fixed.vhdx -SizeBytes 20GB -Fixed
Mount-VHD -Path G:\wsl\ubuntu_fixed.vhdx
# 初始化磁盘,这两个可以用软件手动做,失败我感觉是分区的问题,我是用软件格式化ext4的分区了 Initialize-Disk -Number (Get-Disk | Where-Object IsOffline -Eq $true | Select-Object -First 1).Number New-Partition -DiskNumber (Get-Disk | Where-Object IsOffline -Eq $true | Select-Object -First 1).Number -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -NewFileSystemLabel "WSL"
DisMount-VHD -Path G:\wsl\ubuntu_fixed.vhdx
wsl --import Ubuntu-24.04 G:\wsl\ubuntu_fixed.vhdx G:\wsl.tar --version 2
wsl -d Ubuntu-24.04
|
调整配置虚拟内存和CPU
创建一个配置文件 C:\Users\<username>\.wslconfig
,并添加以下内容:
1 2 3
| [wsl2] memory=16GB processors=12
|
重启WSL2。
添加排除项到 Windows 安全中心
为了进一步优化性能,可以将新的 VHD 文件添加到 Windows 安全中心的排除项中:
- 打开“Windows 安全中心”。
- 进入“病毒和威胁防护”设置。
- 点击“管理设置”。
- 在“排除项”下,点击“添加或删除排除项”。
- 添加新的 VHD 文件路径(例如 G:\wsl\ubuntu_fixed.vhdx)。