每WSL 文档,WSL2 是 Hyper-V 上的虚拟机。但是,从 Hyper-V 管理器看不到此 VM 的状态。
如何检查 WSL2 的虚拟机状态?例如:
- 它是否正在运行?
- CPU 被消耗了吗?
- RAM 被消耗了吗?
答案1
但是,Hyper-V 管理器无法看到该 VM 的状态。
另外,我还是想知道他们使用什么机制来隐藏它。BlueStacks 显然也做了同样的事情这个问题(我已确认)。
如何检查 WSL2 的虚拟机状态?
其中大部分可以在vmmem
(现有 WSL2 版本下)或vmmemWSL
(WSL2 预览版以及大概的未来版本)流程中找到。
它是否正在运行?
vmmem
根据我的经验,进程列表中的/的存在vmmemWSL
始终表明 WSL2 VM 是否正在运行。
当你启动 WSL2 发行版时,你会看到此进程出现(如果它尚未运行)。并且它将在以下任一情况下结束:
wsl --shutdown
被执行。- 或者当 WSL 讨论中讨论这两个计时器时#8659已过期。
请注意,如果您深入挖掘,还可以在事件查看器中看到启动和关闭消息。
CPU 被消耗了吗?
Get-Process vmmem
(或vmmemWSL
)来自管理 PowerShell(CPU 信息需要管理员)。我自己还没有测试过,因此,基于 WSL2 发行版内外的一些分析来确认这有多准确将会很有趣。
RAM 被消耗了吗?
任务管理器或Get-Process vmmem
(或vmmemWSL
)。
还有少量来自vmwp.exe
(“虚拟机工作进程”)。
请注意启用通过虚拟机平台(和/或 Hyper-V)的 WSL2 将适当消耗1GB内存其他地方没有报告过。这只是首先启用 Hyper-V 功能的开销,无论 VM 当前是否正在运行。
还请注意,正如您所要求的那样,这具体是 VM。当然,其他支持进程(例如终端和 LxssManager 本身)也会消耗一些内存。