运行Virtual Box时如何减少CPU使用率?


12

运行VirtualBox时,我的系统下100%CPU使用率遇到问题。以下是更多详细信息:

我的系统信息:

CPU 1名称: Intel(R)Pentium(R)Dual CPU T2310 @ 1.46GHz
CPU 1级别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 2级缓存大小: 1024K统一缓存。

CPU 2 Mips: 2925.96
64位CPU?是!
总内存: 2.0 GB
总交换空间: 6141 MBytes


我的操作系统信息:

Kubuntu操作系统版本: 11.04
内核版本: 2.6.38-8-通用
内核拱门: i686
默认外壳程序: / bin / bash


我的虚拟盒子设置:

操作系统类型: Windows XP
视频内存: 32 MB
加速: 3D
基本内存: 512 MB

问题详细信息:

好吧,每次我从VirtualBox运行Windows XP时,我都会看到CPU使用率几乎达到100%。即使我的托管Windows XP版本上没有程序运行,我也会遇到系统运行缓慢的问题。

我想知道是否可以使用这些设置来稍微提高性能。在Linux操作系统下,我的PC相对较快。我需要知道在配置VirtualBox的设置时是否可以遵循一些提示,以便获得更好的结果。

任何建议/想法高度赞赏!


所以您是说您的VM运行缓慢,还是整个系统运行?你的CPU 相当弱的-所以我不知道,如果它在运行的虚拟机到达100%。
slhck

CPU速度很慢,但是我一直在Athlon XP 2800+的SUSE主机上运行XP,没有问题,并拥有2 GIB RAM,该系统比我的系统快很多倍。它应该能够以中立的方式运行VirtualBox和XP,不会出现任何问题。也可以+1以获取相关计算机规格的详细列表。
2011年

在同一台计算机上的多个操作系统下,我一直面临相同的问题。以前,我使用过Linux Mint,Ubuntu,Slax,Fedora,似乎所有这些我在CPU使用率方面都面临类似的问题。但是,我相信,如果我能够“适当地”调整虚拟机的设置,那么我“可能”能够稍微提高性能。
Compilingrorg

我目前使用的临时解决方案是一个无限循环,该循环运行bash命令以每10秒释放一次页面缓存,牙科和索引节点。当我想到使用这种怪异的技术后,我的VM能够喘口气,尽管这不是正确的方法,而是“ hack”。
Compilingrorg

1
遗憾的是,T2310没有虚拟化扩展VT-x(ark.intel.com/Product.aspx?id=32431),结果Virtualbox将使用软件来捕获来宾进行的所有高特权cpu调用,这意味着Virtualbox本身将使用更多的CPU功能来满足客户操作系统的需求。我也很好奇,看看是否给来宾操作系统提供1GB的RAM可能会更好地使其空闲,因为它不需要经常进行Virtualbox-host昂贵的页面错误……
Mokubai

Answers:


5

根据您的CPU数据表,在http://ark.intel.com/Product.aspx?id=32431上,我在T2310之上的详细评论没有虚拟化扩展(VT-x)。

这个维基百科的文章,有三个将在VM(并因此增加了主机CPU使用率的性能会造成可测量的降解基本的东西:

  • 二进制翻译用于重写某些指令(例如POPF),否则它们将在第0环以上执行时无提示地失败或表现不同,从而使经典的陷阱模拟虚拟化成为不可能。为了提高性能,需要以一种连贯的方式缓存已翻译的基本块,以检测代码补丁(例如,在VxD中使用),来宾OS对页面的重用,甚至自修改代码。

  • 处理器使用的许多关键数据结构需要进行阴影处理。因为大多数操作系统使用分页的虚拟内存,并且授予来宾OS对MMU的直接访问权将意味着虚拟化管理器失去控制,所以x86 MMU的某些工作需要使用一种技术在来宾OS的软件中进行复制。称为影子页表。这涉及通过捕获访问尝试并在软件中模拟访问尝试,来拒绝来宾OS对实际页表条目的任何访问。

  • I / O设备仿真:来宾OS上不受支持的设备必须由在主机OS中运行的设备仿真器来仿真。

来宾操作系统对要求使用特权指令的操作有很大的了解,通常通过使用Intel的VT-x和AMD的AMD-V虚拟化扩展可以大大减轻这些开销。您的处理器缺少这些扩展,因此捕获和仿真的所有工作都会导致性能下降。

我的建议是:

  • 为虚拟机提供所需的内存以最大程度地减少需要完成的页面调度量,根据您的工作负载,可能需要1GB或更多。

  • 禁用3D加速,因为对3D驱动程序的所有调用很可能必须通过仿真层进行推送,因此在您的处理器上可能很昂贵。

  • 为您的客户操作系统安装Virtualbox Guest Additions,因为它们将使用更好地支持虚拟环境的驱动程序。

  • 降低客户机操作系统中的屏幕分辨率和图形选项。

  • 将网络(互联网)访问保持在合理的水平上,即使使用VT-x,受网络约束的虚拟机也很昂贵,并且也可以从VT-d(定向I / O虚拟化技术)中受益,处理器也不支持。


2

我的答案仅与问题的标题有关,与问题的其他文本无关。我的重点是通过更多的虚拟来宾使用空闲的CPU :(主机上有足够的可用内存)。

audiodg.exe运行VirtualBox时,由Windows主机上的进程导致的CPU使用率高于iddle guest虚拟机本身的负载。通过在“音频”选项卡上的Virtualbox guest虚拟机设置中禁用“ 音频”复选框,可以轻松地将其删除或完全删除。(只能在封闭的虚拟机上禁用。)

audiodg.exe进程为一个来宾占用大约5%的CPU,但是在诸如源代码编辑之类的典型闲置活动中,它是笔记本电脑上的重要负载,并且对CPU频率(从80%降低到40%),风扇速度有很大影响和笔记本电脑上的电池寿命。我的许多运行中的虚拟机通常不需要声音,或者有时仅需要声音。(在来宾操作系统中禁用音频无效,虚拟机也不会暂停,但是virtualbox来宾设置很重要。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.