服务器虚拟化如何提高性能?

由于带来了许多好处,我正在将服务器虚拟化看作是一种新趋势。 其中之一就是用更less的硬件提高性能

这怎么可能? 从我有限的知识来看,没有虚拟化能够匹配物理性能(因为你增加了一个额外的软件)。 如果你减less了物理硬件的数量(例如减less一台电脑),你怎么能得到相同的性能?

你的问题考虑到了每个节点的性能,这个值太广泛了,不能在任何情况下考虑。 这个问题在很大程度上取决于人们如何概念化performance

在实际场景中,人们关心的是服务的性能如何,而不是服务器所在的机器是否满足任意的性能指标。 是的,虚拟化涉及一定程度的开销。 但是,它也提供了高度的隔离性和灵活性。

考虑在单台机器上运行多个服务的影响,所有服务都具有相同的资源池。 在这种情况下,一个服务可能会消耗太多的CPU时间或内存,使得另一个服务无法为其内容提供最佳服务,因为它会提供更有限但隔离的资源池。 要通过虚拟化来解决这个问题,服务应该尽可能地彼此分开,这样你就不会互相干扰,从而损害整个系统。

还要考虑function,而不仅仅是原始的性能。 在线时,虚拟机可以在主机之间移动(在大多数pipe理程序上)。 这可以让主机在虚拟机停机维护之前腾出空间。 在此期间,实际生产堆栈不受影响,也不会退化。 这使得replace硬件变得非常容易,并且使得物理资源通常是可替代的。

虚拟机可以在同一主机上具有多种完全不同的操作系统types,从而使数据中心更加灵活多样,同时将堆栈的低端进行同质化,以获得一致的结果和pipe理。

本着说到性能的精神,虚拟机可以利用半虚拟化来减less整个虚拟机的开销,也可以降低虚拟机中特定关键设备的开销。 这允许灵活的磁盘抽象,直接的磁盘连接和虚拟NIC,以非常接近的本地速度(在某些情况下,由于高级cachingfunction,甚至更高的速度)。 此外,虚拟机pipe理程序还利用客户机操作系统可能无法执行的高级内存function,如重复数据删除。 这将允许像Windows客户机这样的东西直接利用使用KSM的内存重复数据删除以及BTRFS或ZFS的存储弹性来举例。