如何检查 WSL2 的虚拟机状态?

如何检查 WSL2 的虚拟机状态?

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 本身)也会消耗一些内存。

相关内容