VirtualBox 客户操作系统 CPU 使用率高/CPU 速度错误?

VirtualBox 客户操作系统 CPU 使用率高/CPU 速度错误?

我已经从运行 Windows XP 的物理 PC 创建了一个 VM 映像。我现在正尝试使用 VirtualBox 将该映像作为 Ubuntu Linux 下的客户操作系统运行。除了一个问题外,一切似乎都运行顺利:

客户操作系统的性能非常慢,甚至完成像打开对话框这样的简单任务时 CPU 使用率也非常高。

我注意到的一件事是,当我右键单击“我的电脑”并转到客户操作系统中的“属性”时,它会显示如下 CPU 信息:

奔腾(D)CPU 2.80Ghz 3.95Ghz,896MB 内存

现在最有趣的部分是,主机运行的是 Pentium D 2.8Ghz 处理器,但我不知道 3.95Ghz 是什么意思。我还应该注意到,在上一次启动映像时,3.95Ghz 读起来大概是 5.2Ghz!

我认为这里存在处理器问题。有人有解决方案吗?我已经尝试在设备管理器中卸载处理器并重新启动,但没有解决问题。

答案1

我遇到过类似的问题,不得不使用“taskset”工具来设置 CPU0 的亲和性;看来很多人都遇到了同样的问题。这是一篇简明的文章:

https://help.ubuntu.com/community/VirtualBox/Previous

在我的系统上,我做得比他们列出的“taskset -c 1”更直接一些;我在进程列表中找到了启动我想要的精确 VM(其中包括 VM 的唯一 SID)的直接命令,并创建了一个简单的帮助脚本来运行它,如下所示:

#!/bin/sh
/bin/taskset 0x00000001 /usr/lib/virtualbox/VirtualBox -comment WindowsXP -startvm a7487a75-6119-4a14-a8ea-195ce2906a4b &

这是在 Fedora 上,Ubuntu 路径可能略有不同,因此请根据需要进行调整。

答案2

“Pentium (D) CPU 2.80Ghz”是虚拟机管理程序传递的处理器名称(通过 cpuid),“3.95Ghz”是客户机计算出的估计频率。校准例程可能被虚拟化所混淆……如果客户机使用 TSC 进行校准,并且主机 CPU 在核心之间没有同步的 TSC,那么从客户机的角度来看,TSC 将以错误的速率运行(甚至可能倒退);Pentium D 已同步 TSC。所以问题出在其他地方……可能是 SpeedStep(主机更改了 CPU 频率,而客户机不知道这种变化)。

您正在运行最新版本的 VBox 吗?

相关内容