Com*_*org 12 linux cpu performance virtualbox cpu-usage
运行 VirtualBox 时,我在系统下面临 CPU 使用率 100% 的问题。以下是一些进一步的细节:
我的系统信息:
CPU 1 名称: Intel(R) Pentium(R) Dual CPU T2310 @ 1.46GHz
CPU 1 一级缓存大小: 32K 数据缓存。32K 指令缓存。CPU 1 二级缓存大小: 1024K 统一缓存。
CPU 1 Mips: 2926.20
CPU 2 名称: Intel(R) Pentium(R) Dual CPU T2310 @ 1.46GHz
CPU 2 1 级缓存大小: 32K 数据缓存。32K 指令缓存。CPU 2 二级缓存大小: 1024K 统一缓存。
CPU 2 Mips: 2925.96
64 位 CPU?是的!
总内存: 2.0 GB
总交换: 6141 MB
我的操作系统信息:
Kubuntu 操作系统版本: 11.04
内核版本: 2.6.38-8-generic
内核架构: i686
默认shell: /bin/bash
我的虚拟盒子设置:
操作系统类型: Windows XP
视频内存: 32 MB
加速: 3D
基本内存: 512 MB
问题详情:
好吧,每次我从 VirtualBox 运行 Windows XP 时,我都会看到 CPU 使用率几乎达到 100%。即使我的托管 Windows XP 版本上没有运行任何程序,我也会遇到系统缓慢的情况。
我想知道是否有办法让我玩这些设置,以便我可以稍微提高性能。我的电脑在我的 Linux 操作系统下相对较快。我需要知道在配置 VirtualBox 的设置时是否可以遵循一些提示,以便获得更好的结果。
任何建议/想法都非常感谢!
根据您在http://ark.intel.com/Product.aspx?id=32431 上的CPU 数据表详细阐述了我上面的评论,T2310 缺少虚拟化扩展 (VT-x)
从这篇 Wikipedia 文章 中,有三项基本因素会导致 VM 性能显着下降(因此会增加主机上的 CPU 使用率:
二进制转换用于重写某些指令,如 POPF,否则这些指令在环 0 之上执行时会静默失败或表现不同,从而使经典的陷阱和模拟虚拟化变得不可能。为了提高性能,翻译的基本块需要以一种连贯的方式进行缓存,以检测代码修补(例如在 VxD 中使用)、来宾操作系统对页面的重用,甚至自我修改代码。
处理器使用的许多关键数据结构需要被屏蔽。因为大多数操作系统使用分页虚拟内存,并且授予客户操作系统对 MMU 的直接访问权限将意味着虚拟化管理器失去控制,x86 MMU 的一些工作需要使用一种技术在客户操作系统的软件中复制称为影子页表。这涉及通过捕获访问尝试并在软件中模拟它们来拒绝来宾操作系统对实际页表条目的任何访问。
I/O 设备仿真:来宾操作系统上不受支持的设备必须由在主机操作系统中运行的设备仿真器进行仿真。
对于需要使用特权指令的操作,来宾操作系统有很多偷听,通常这些开销可以通过使用 Intel VT-x 和 AMD AMD-V 虚拟化扩展来大大减轻。您的处理器缺少这些扩展,因此所有捕获和仿真工作都会导致一些性能损失。
我的建议是:
为虚拟机提供尽可能多的内存,以最大限度地减少需要完成的分页量,根据您的工作负载,可能为 1GB 或更多。
禁用 3D 加速,因为对 3D 驱动程序的所有调用可能都必须通过仿真层推送,因此处理器可能会很昂贵。
为您的客户操作系统安装 Virtualbox Guest Additions,因为它们将使用更好地支持虚拟环境的驱动程序。
降低客户操作系统中的屏幕分辨率和图形选项。
将网络(互联网)访问保持在合理的水平,即使使用 VT-x,重度网络绑定的虚拟机也很昂贵,并且也受益于 VT-d(定向 I/O 虚拟化技术),您的处理器也不支持这种技术。