【发布时间】:2012-02-04 00:07:19
【问题描述】:
我在 Wikipedia 上阅读了不同类型的虚拟化,但我的问题是 CPU 在每种情况下如何工作?例如,在软件与硬件虚拟化期间 CPU 会发生什么?我的意思是在软件虚拟化中,如果我增加虚拟机数量,cpu 负载也会在硬件虚拟化中增加,如果我增加虚拟机数量,cpu 负载会再次增加,那么这两种情况有什么区别?
【问题讨论】:
标签: cpu virtualization
我在 Wikipedia 上阅读了不同类型的虚拟化,但我的问题是 CPU 在每种情况下如何工作?例如,在软件与硬件虚拟化期间 CPU 会发生什么?我的意思是在软件虚拟化中,如果我增加虚拟机数量,cpu 负载也会在硬件虚拟化中增加,如果我增加虚拟机数量,cpu 负载会再次增加,那么这两种情况有什么区别?
【问题讨论】:
标签: cpu virtualization
不清楚您到底在问什么,但硬件支持的虚拟化是 CPU 有额外的硬件支持/指令(例如:VT-x)以促进虚拟化中常见的一些常见任务的地方。与编写与虚拟化硬件相当的工作的小程序集/软件程序相比,这使其更快。
因此,在硬件加速虚拟化中,该任务被委派给该硬件块以完成。在纯软件虚拟化中,运行一个小的软件例程来完成相同的工作。通常,专用硬件比软件程序要快得多——这就是它们最初被设计的原因。
(发布问题编辑)
硬件虚拟化是“硬件辅助”。传统 CPU 具有硬件模块,可以让它们非常有效地运行常见的软件工作负载(“我们乘以 15% 的时间?好的,让我们在里面放一个硬件乘法器”)。经过数十年的芯片制造和代码分析,我们在编写的代码和可用的芯片之间找到了相当好的契合度。最近虚拟化已经起飞,并且在虚拟化中出现了“传统” CPU 看不到/不支持的新工作负载模式。芯片制造商发现了这种模式,并在硬件中添加了额外的指令以加速此类工作负载。所以现在你有了硬件辅助虚拟化 CPU 可以快速完成一些任务。
尽管如此,当你虚拟化一台机器时,你仍然必须处理操作系统一直在做的传统工作(通常的工作负载)加上从虚拟机管理程序等看到的新工作负载。所以即使有硬件支持的虚拟化,添加更多 VM 将消耗更多 CPU。
【讨论】: