首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器虚拟化如何提高性能?

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

Server Fault用户
提问于 2016-10-04 13:55:52
回答 2查看 592关注 0票数 0

我读到服务器虚拟化是一种新趋势,因为它带来了许多好处。其中之一是用较少的硬件来提高性能。

这怎么可能呢?根据我有限的知识,没有任何虚拟化能够与物理性能相媲美(因为您增加了一个额外的软件)。如果减少物理硬件的数量(例如,减少一台计算机),那么如何才能获得相同的性能呢?

EN

回答 2

Server Fault用户

发布于 2016-10-04 14:57:11

您的问题考虑到了每个节点的性能,这个值太宽泛,无法在任何情况下考虑。这个问题很大程度上取决于如何概念化性能。

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

考虑在一台机器上运行多个服务的影响,所有服务都被赋予相同的资源池。在这种情况下,一个服务可能会消耗过多的CPU时间或内存,因此另一个服务不能像提供一个更有限但更孤立的资源池那样以最佳方式提供其内容。为了用虚拟化来解决这个问题,尽可能地将服务彼此分开,这样您的服务就不会相互干扰,从而可能会损害整个堆栈。

还要考虑特性,而不仅仅是原始性能。虚拟机可以在联机时(在大多数虚拟机管理程序上)从主机移动到主机。这样,主机就可以在被关闭以进行维护之前从虚拟机中空出。在此期间,实际的生产堆栈不受影响,不会降级。这使得替换硬件变得非常容易,并且使得物理资源通常可以替换。

虚拟机可以在同一台主机上具有多种完全不同的OS类型,从而使数据中心更加灵活多样,同时使堆栈的低端均匀化,以实现一致的结果和管理。

出于性能的考虑,虚拟机可以利用半虚拟化来减少整个VM或模拟VM中特定关键设备的开销。这允许灵活磁盘抽象、直接磁盘连接和虚拟NIC的非常接近的本地速度(在某些情况下甚至由于高级缓存功能而具有更高的速度)。另外,虚拟机监控程序还利用高级内存功能,例如客户操作系统可能无法实现的重复。这将允许像Windows客户这样的东西直接利用使用KSM的内存去叠,以及BTRFS或ZFS的存储弹性来做一个例子。

票数 4
EN

Server Fault用户

发布于 2020-03-14 21:35:56

简单的答案是虚拟化不会提高性能。事实上,虚拟化显着降低性能。

当然,我在前一段时间做了这个测试,但是没有办法摆脱额外的上下文切换所带来的巨大开销。管理程序下的上下文切换通常比裸金属慢大约100倍。一旦您开始接近CPU饱和点,性能将急剧下降。

诚然,我在Core2时代就做过这个测试,但是事情并没有像你想象的那样发生很大的变化。有一些方法可以在一定程度上减少开销,包括: 1)将vCPU插入物理CPU线程(并牺牲VM的可移植性)。2)将两个核心未分配给客人,并将管理程序钉在他们身上(并先发制人地牺牲少数核心的性能值) 3)增加最小时间切片持续时间(通常使用适当的调优-adm配置文件)。

但仍将有很大的开销。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/806973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档