【问题标题】:Hardware virtualization硬件虚拟化
【发布时间】:2012-02-04 00:07:19
【问题描述】:

我在 Wikipedia 上阅读了不同类型的虚拟化,但我的问题是 CPU 在每种情况下如何工作?例如,在软件与硬件虚拟化期间 CPU 会发生什么?我的意思是在软件虚拟化中,如果我增加虚拟机数量,cpu 负载也会在硬件虚拟化中增加,如果我增加虚拟机数量,cpu 负载会再次增加,那么这两种情况有什么区别?

【问题讨论】:

    标签: cpu virtualization


    【解决方案1】:

    不清楚您到底在问什么,但硬件支持的虚拟化是 CPU 有额外的硬件支持/指令(例如:VT-x)以促进虚拟化中常见的一些常见任务的地方。与编写与虚拟化硬件相当的工作的小程序集/软件程序相比,这使其更快。

    因此,在硬件加速虚拟化中,该任务被委派给该硬件块以完成。在纯软件虚拟化中,运行一个小的软件例程来完成相同的工作。通常,专用硬件比软件程序要快得多——这就是它们最初被设计的原因。

    (发布问题编辑)

    硬件虚拟化是“硬件辅助”。传统 CPU 具有硬件模块,可以让它们非常有效地运行常见的软件工作负载(“我们乘以 15% 的时间?好的,让我们在里面放一个硬件乘法器”)。经过数十年的芯片制造和代码分析,我们在编写的代码和可用的芯片之间找到了相当好的契合度。最近虚拟化已经起飞,并且在虚拟化中出现了“传统” CPU 看不到/不支持的新工作负载模式。芯片制造商发现了这种模式,并在硬件中添加了额外的指令以加速此类工作负载。所以现在你有了硬件辅助虚拟化 CPU 可以快速完成一些任务。

    尽管如此,当你虚拟化一台机器时,你仍然必须处理操作系统一直在做的传统工作(通常的工作负载)加上从虚拟机管理程序等看到的新工作负载。所以即使有硬件支持的虚拟化,添加更多 VM 将消耗更多 CPU。

    【讨论】:

    • 你能告诉我 CPU 在软件虚拟化中是如何工作的吗?
    • 我无法涵盖其中的所有内容 - 这将是一本大书!但请阅读pagetable.com/?p=15 了解问题所在以及硬件辅助解决方案。另一个硬件辅助解决方案是en.wikipedia.org/wiki/Extended_Page_Table,在您阅读第一个链接后会很有意义
    猜你喜欢
    • 2013-11-27
    • 2012-11-05
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    相关资源
    最近更新 更多