答案1
文章 使用 Microsoft 而非 Intel CPU 驱动程序来提升 WSL 2 性能 描述了同样的问题:
Windows 资源监视器显示 WSL 在满载时仅负载 50%,而 Microsoft 的标准 CPU 驱动程序负载则达到 100%。
建议的解决方案是禁用英特尔驱动程序并强制使用微软驱动程序。
这是通过使用regedit
注册表项中的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\intelppm
将该项的值设置为来完成Start
的4
(默认为3
),然后重新启动。
与所有注册表更改一样,请采取一些预防措施,至少创建一个系统还原点,以便在出现问题时可以将 Windows 回滚到以前的状态。
答案2
我的问题是我没有正确设置配置。另一篇文章中提到的注册表更改对我没有任何作用。例如在 C:/Users/<用户名>/.wslconfig
[wsl2]
processors=8
这应该设置为逻辑处理器的数量,而不是物理核心的数量。请确保在更新后重新启动 WSL。
如果您在更改之前和之后运行此操作,您应该会看到差异。
lscpu | grep -E "CPU\(s):|Thread|Core\(s|Socket"
sysbench cpu --threads=$(nproc) run
另请参阅:https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig