首页 文章

VIRTIO:它如何提高性能

提问于
浏览
3

我想明白:

  • 与完全虚拟化或hw辅助虚拟化(如virtio_net或virtio_blk)相比,virtio驱动程序如何提高性能?

  • 这些virtio驱动程序如何影响guest虚拟机和Hypervisor之间的VMEXIT / VMENTER或上下文切换?

  • virtio的基本概念或架构是什么?

谢谢

1 回答

  • 2

    VIRTIO是一个实用的界面 . 这意味着访客必须意识到它正在虚拟化环境中运行,因此它可以部署它的VIRTIO驱动程序与虚拟硬件进行通信 . 半虚拟化案例经过优化,可以将guest-> hyper-visor-> host和back转换的数量保持在最小,从而提高性能 . 将差异与完全虚拟化进行比较,其中客户可能不知道它是虚拟化的,因为它提供了许多模拟的硬件,只要它是真正的硬件 . 但是,对于每次访问硬件时,guest虚拟机都会有一个陷阱来处理每个单独的访问 . 例如,如果NIC卡需要20个寄存器设置来发送一个数据包,该数据包将从客户端和模拟器发送20个转换 .

    现在有另一种类型的虚拟化依赖于IOMMU . 这些可以被编程为将其地址空间的一部分传递给给定的VM . 因此,VM可以直接访问硬件,并且超级遮阳板/主机不需要参与真实硬件的仿真 . 在这种情况下,它可能是虚拟NIC,它实际上是一个真正的NIC,它已被细分为多个不同的虚拟NIC,每个VM一个 .

    http://vmsplice.net/~stefan/virtio-devconf-2014.pdf对VIRTIO架构进行了很好的描述

相关问题