为什么我的客户虚拟机一直冻结?

为什么我的客户虚拟机一直冻结?

背景:

过去,当我的客户虚拟机冻结时,我查看了 Windows 任务管理器,发现内存非常少。这让我得出结论“主机将虚拟机从物理内存中移出并放入虚拟内存(即分页)--> 因此虚拟机冻结,因为它现在耗尽了分页内存而不是物理内存”。

当前的:

最近,我的客户虚拟机冻结了,查看任务管理器发现“可用内存”充足,有 1.2 GB。我附上了我的主机 Windows 机器和客户 Fedora 14 虚拟机的屏幕截图。

主机任务管理器和客户机任务管理器

我的观察:

  • 主机有足够的可用内存(1.2 GB)
  • 客人有足够的可用内存
  • 客人的截图……之所以可用,是因为它完全是偶然出现在顶部并且可见
  • 主机 CPU 固定为 2/4 核
  • 客户机 CPU 根本没有被限制

我关闭了虚拟机,主机的任务管理器显示:

  • 可用物理内存增加了与分配给客户虚拟机的内存量完全相同的量
  • 分页减少了分配给客户虚拟机的内存量
  • CPU 使用率从超高降至几乎为零

根据描述,您认为客户虚拟机冻结的原因是什么?我就是想不通这一点,而且我没有任何调试工具来查看问题出在哪里!

  • 有什么方法可以表明“virtualbox”进程正在大量使用硬盘(即该进程现在处于分页而不是物理内存中?
  • 我怎样才能显示虚拟盒“卡在分页中”?
    • (我听说过 perfmon......但无法弄清楚。所以请详细说明而不是“使用 perfmon”,并说明要查看哪种计数器)

答案1

  1. 检查 Fedora VM 中的日志,看看是否有任何原因导致冻结。

  2. 分页不应该成为问题——没有理由客户不能分页,并且主机上的分页根本不会冻结客户。

  3. 请发布您使用的 VirtualBox 版本号。您写的内容对我来说听起来像是 VB 错误,而不是任何操作系统问题。

答案2

现在我可以做所有需要做的事情,而客户操作系统不会出现任何冻结。

以下是不会冻结的配置:

  • 主机操作系统:Windows 7 64 位(以前为:Windows XP 32 位)
  • 主机操作系统:8 GB 可用内存(以前:Windows XP 32 位为 3GB)
  • 客户操作系统:1 CPU/核心(之前为:2 CPU/核心)
  • 主机操作系统:VirtualBox 版本 4.0.8
  • 主机:关闭超线程

我对“是什么原因导致冻结?”的直觉反应。以下是两个可信的原因:

  1. 我认为内存不足导致了冻结。
    • 主机操作系统将客户操作系统置于分页状态...然后客户操作系统实际上并没有冻结...只是变得非常慢。
  2. 或者在客户操作系统中使用 2 个核心导致虚拟机出现奇怪的冻结。
    • 我认为这种可能性很小。因为我使用的是 2 个核心(少于主机的总数)... 这是 VirtualBox 中支持良好的功能。

不幸的是,我没有学到足够的调试技术来显示真正的原因......这些只是我最好的猜测。

相关内容