我在维基百科上读过不同类型的虚拟化,但我的问题是CPU在每种情况下是如何运作的?例如,在软件与硬件虚拟化期间,CPU会发生什么情况?我的意思是,在软件虚拟化中,如果我增加虚拟机数量,在硬件虚拟化中cpu负载也会增加,如果我增加虚拟机数量,cpu负载又会增加,那么这两种情况之间的区别是什么?
发布于 2012-02-04 08:11:10
不清楚你到底在问什么,但硬件支持的虚拟化是指CPU有额外的硬件支持/指令(例如: VT-x)来简化一些在虚拟化中常见的任务。这使得它比编写一个小的汇编/软件程序来完成虚拟化硬件的同等工作要快得多。
因此,在硬件加速的虚拟化中,该任务被委托给硬件块完成。在纯软件虚拟化中,运行一个小的软件例程来完成相同的工作。通常,专用硬件要比软件例程快得多--这就是为什么它们一开始就被设计出来了。
(post问题编辑)
硬件虚拟化是“硬件辅助的”。传统的CPU有硬件模块,允许它们非常高效地运行常见的软件工作负载(“我们的时间是15%的倍增?好的,让我们在其中放一个硬件乘法器”)。经过几十年的芯片制造和代码分析,我们在编写的代码和可用的芯片之间有了相当好的契合度。最近,虚拟化已经起飞,在虚拟化中出现了一种新的工作负载模式,这是“传统”CPU看不到/不支持的。芯片制造商认识到了这一模式,并在硬件中添加了额外的指令,以加速此类工作负载。现在,您有了硬件辅助的虚拟化CPU,可以快速完成一些任务。
尽管如此,要认识到当您虚拟化一台机器时,您仍然必须处理操作系统一直在做的传统工作(通常的工作负载)以及从虚拟机管理程序等看到的新工作负载。因此,即使使用硬件支持的虚拟化,添加更多的VM也会消耗更多的CPU。
https://stackoverflow.com/questions/9137151
复制相似问题