虚拟机是否比基础物理机慢?


50

这个问题很笼统,但是最具体地说,我想知道运行Ubuntu Enterprise Cloud的虚拟机是否比没有任何虚拟化功能的同一物理机慢。多少(1%,5%,10%)?

有没有人衡量Web服务器或数据库服务器(虚拟VS物理)的性能差异?

如果取决于配置,让我们想象一下运行64位ubuntu企业服务器的两个四核处理器,12 GB内存和一堆SSD磁盘。最重要的是,只有1个虚拟机允许使用所有可用资源。


1
Ubuntu Entreprise Cloud基于KVM而非Xen。
Antoine Benkemoun 2010年

1
Antoine,您是对的-“尽管lib-virt的发展使KVM和Xen主机的管理变得统一,但核心虚拟化策略始终基于KVM。” -我将删除有关Xen的提及。
Michal Illich'4

Answers:


31

裸机\类型1虚拟机管理程序上的通用服务器工作负载的典型经验是CPU开销的约1-5%,内存开销的约5-10%,其中一些额外的开销取决于总体IO负载。这与我在现代化的Guest OS在VMware ESX \ ESXi,Microsoft Hyper-V和Xen下运行的经验中保持一致,其中适当地设计了底层硬件。对于在支持最新cpu硬件虚拟化扩展的硬件上运行的64位Server操作系统,我希望所有Type 1虚拟机管理程序都将获得该开销百分比的1%。在这一点上,KVM的成熟度还不完全取决于Xen(或VMware),但我认为没有理由认为,对于您所描述的示例,KVM的性能将明显比它们差。

对于特定的用例,尽管虚拟环境的整体\“综合”性能可能超过裸机\离散服务器。这是一个讨论示例,该示例讨论了VMware群集配置如何比裸机Oracle RAC更快,更好,更便宜。如果您具有足够相似的虚拟机,则VMware的内存管理技术(尤其是透明的页面共享)可以几乎完全消除内存开销。在所有这些情况下,重要的是,只有将多个VM整合到主机上,虚拟化才能提供的性能/效率优势才能实现,您的示例(主机上有1个VM)在某种程度上总是比裸机慢。 。

尽管这都是有用的,但有关服务器虚拟化的实际问题往往集中在管理,高可用性技术和可伸缩性上。2-5%的CPU性能余量并不重要,因为它可以有效地扩展到每台主机上20、40或任意数量的VM。您可以通过选择稍快的CPU作为基准或在群集中添加更多节点来应对性能下降的问题,但是如果主机无法扩展其可以运行的VM的数量,或者环境难以管理或从服务器虚拟化的角度来看,这种方法不可靠,那么就毫无价值。


7
您使用了过时的技术-特别是5%至10%的内存开销是旧硬件。如果系统管理程序支持的话,较新的硬件芯片的开销大约为2%至3%-我们谈论的是新的一年。到那时,AMD和英特尔改进了他们用于Hyper-Visor内存映射的API。如您稍后所述,它们的作用非常透明(目标为1%)。+1指出真正的好处。
TomTom

1
我将5-10%的数据基于对VMware的了解,该数据基于EPT \ RVI之前的套件。有道理的是,在最新的CPU中改进的基于硬件的虚拟内存管理将减少RAM开销
Helvick 2010年

关于透明页面共享,当您拥有所有新cpu都支持的大内存页面时,它很糟糕。在这种情况下,您基本上一无所获。
托尼·罗斯

1
@Tony只有在您没有过多使用的情况下才是正确的-如果您这样,那么ESX \ ESXi 4将选择使用小页面,TPS将启动。确实按照广告宣传工作,但是这是一种明智的方法,应该在绝对需要时允许过量提交,而在不牺牲性能的情况下也不例外。参见kb.vmware.com/selfservice/microsites/…– Helvick
2010年

1
@Helvick,如果您运行win7或w2k8r2 guest虚拟机,TPS不能正常工作,因为guest虚拟机正在积极地预先存储东西。
托尼·罗斯

23

“性能”有很多方面。n00bs衡量操作系统的启动时间,并说Windows 2012很棒,因为它在实高清上的启动时间为12秒,在SSD上可能为1秒。
但是这种措施不是很有用:性能等于操作系统启动时间,但是操作系统每月启动一次,因此进行优化没有太大意义。

因为这是我的日常工作,所以我可能要指出构成“绩效”的以下四个部分

  1. CPU负载
    这应该是可比的,这意味着在相同硬件上的空闲VM环境中,在裸机上花费1000毫秒的任务将在1000毫秒的处理时间中执行,并且可能需要1050毫秒的时钟时间执行(稍后会有详细介绍)。Google的MSDN用于处理时间和queryperformancecounter,而yu可以做的事情可以显示VM占用了您的CPU时间。

  2. SQL性能
    SQL性能高度依赖于存储SQL数据的数据存储区的IO。我已经看到,第一代ISCSI在各个级别的Buffalo家用NAS上,然后是带DCE的ISCSI和真正的老式FC环境之间的300%差异。如今,FC仍然是赢家,因为FC延迟是最低的可归档文件,可导致FC协议的“副本”用于TCP / IP数据中心的增强。在这里IOps和延迟至关重要,但从服务器进程到介质的IO带宽也很重要-取决于应用程序倾向于使用No-SQL还是数据仓库,还是像ERP系统一样处于中间状态... Sage KHK适用于小型企业,SAP对于巨大的。

  3. 文件系统访问
    一些应用程序(例如视频流)依赖于保证的最小带宽,而另一些应用程序则依赖于最大IO吞吐量,例如仅在十六进制编辑器中打开大型文件,将视频项目加载到您喜欢的电影制作程序中。在vm上不是典型情况。...IOps对开发人员也可能很重要。开发人员经常使用虚拟机,因为开发环境非常敏感,因此在虚拟机中这样做的诱惑很大。编译大型项目通常意味着读取大量小文件,执行编译器工作,并构建EXE和相应组件。

  4. 客户端的网络延迟在
    这里,诸如Word 2010,Openoffice Writer,LaTEX,GSView等WYSIWIG 程序的可用性高度依赖于速度-鼠标操作从客户端到服务器的速度有多快。特别是在CAD应用程序中,这很重要。...但不是LAN问题,这是重要的通过WAN进行远程访问。

但是-从我多年的咨询角度来看-有些用户拥有admin密码(他们通常是BIG公司的员工,他们拥有BIG预算和BIG钱夹)对此抱怨,但必须加以澄清从他们使用的应用程序的角度来看,哪些性能组件对他们很重要,哪些对他们很重要。
它很可能不是记事本,而是用于对此进行工程设计的高度复杂的应用程序,该应用程序也很昂贵,应在VMware,HyperV或Xenapp上移动,并且无法达到预期的性能。

但是他们没有想到它可能会在非纯CPU性能的刀片上运行于1.5 GHz Xeons上,它们是为平均水平而构建的,比如说“针对每个CPU周期$优化”或“每个Watt的CPU周期” 。

当我们谈到权衡和节约时,多数情况下会导致过度承诺。过度使用会导致资源短缺,无法很好地处理CPU,但是内存不足会导致分页,核心路由器中的IO不足会导致所有问题的响应时间增加,并且任何类型的存储上的事务性过载都可能会停止所有有用的应用程序响应太快。这里需要监视,但是许多软件供应商不能提供此类信息。...另一方面,具有3个物理服务器资源的主机最有可能处理8个具有相同布局的虚拟机,例如物理虚拟机...

闲置系统上的CPU折衷通常会导致系统的性能比物理系统慢50%,另一方面,没有人能够安装客户的IT人员想要迁移到虚拟机中的“真实世界”操作系统和“真实世界”应用程序框。而且,要花几天(也许要数周,但肯定要举行42次会议)才能清楚地表明VM技术可以通过交换纯CPU速度来提供灵活性。它只是内置于这些刀片系统上的CPU中,这些刀片系统托管着当今较大的VM环境。内存也无法比拟,也需要权衡。DDR3 1600 CL10将具有比DDR2 800 ECC LLR更高的内存带宽-众所周知,英特尔CPU从此方面获得的利益与AMD cpus不同。但是它们很少在生产环境中使用,在第三世界国家/地区托管的白盒中或在提供数据中心服务的数据管理员中,其价格仅为您自己家中数据中心价格的10%,可能会多得多。多亏了Citrx,如果最终用户与数据中心之间的等待时间少于150毫秒,则数据中心可以无处不在。

和家庭用户的观点。

最后但并非最不重要的一点是,有些人想扔掉Win7或XP并将其换成Linux,然后出现游戏问题,因为实际上只有很少的游戏可用于Linux和Windows。游戏高度依赖3D加速。VMWare 6.5工作站和连接的免费播放器可以处理DirectX 9,这意味着VM中的Doom3可以全屏显示在主机图形卡上。游戏主要是32位应用程序,因此它们不会消耗超过3 GB的内存,并且最多消耗不超过3个CPU(在《孤岛危机》中看到)。较新的VM播放器和WS可以处理更高的DirectX版本,甚至还可以处理OpenGL ...我在VMware 6.5上玩过UT和UT2004,主机配有ATI Radeon 2600移动版和T5440 CPU。它稳定在1280x800,即使在网络游戏上也可以播放。


1
我们喜欢永恒的问题的好答案。欢迎来到服务器故障!
迈克尔·汉普顿

9

是。但这不是问题。差异通常可以忽略不计(1%至5%)。


3
我相信你。但是,仍然可以:您可以链接某个基准来实际测量该基准吗?
Michal Illich 2010年

9
这取决于许多因素,没人能回答您的问题。这取决于您拥有的虚拟机监控程序,服务器规格,存储,最重要的是,在相关时间主机所发生的其他情况。
斩波器

实际上不是。通常,如果您做很多事情,则物理机是共享的。但是,鉴于硬件的虚拟化,到目前为止,虚拟机管理程序的开销是相当恒定的。反过来,如果您开始加载多个VM,则会共享可用的功率,但总的来说,它仍然仅略少于服务器所拥有的功率。
TomTom

11
需要引用。
Zoredache

系统管理程序的开销取决于可以启发多少操作系统,这并不意味着可以进行半虚拟化。
托尼·

8

我要指出,在某些情况下,虚拟化可能会超过物理性能。由于网络层不限于千兆位速度(即使硬件仿真是特定的lan卡),因此同一服务器上的VM可以彼此之间的通信速度超过具有普通网络设备的多个physscal服务器的速度。


2
在同一台服务器上的两个虚拟机上运行的两个软件的通信速度不会比在一台裸机服务器上的同一操作系统下的两个软件的通信速度更快。
bokan 2014年

1

我一直在对运行相同测试的同一软件(基于.NET的Web应用程序以及大量Web流量和可观的SQL Server访问)进行一些测试比较。这是我所看到的:

  • 物理机在实例化类方面更好(这转化为在系统级别分配内存)-这对我来说很有意义,因为物理机通过内存管理硬件来实现,而VM通过软件(在部分硬件协助下)来实现(在VM上) ,该应用程序在其构造函数上花费了大量时间(分配了内存(没有做其他事情),在物理机上,构造函数甚至没有包含在前1000名中)
  • 当您处于某个方法的中间时,这两个大约是等效的-这可能就是构造大多数基准以显示两个“相同”的方式的原因
  • 当您访问网络控制器时,物理服务器会稍微击败虚拟机-在.NET进程和硬件之间,物理服务器没有太多空间。VM添加了每个事务需要通过的其他“内容”。
  • 确实,磁盘访问使用相同的内容(SQL Server在另一台计算机上)-差别很小,但是当您将它们全部加起来时,就很明显了。这可能是由较慢的网络访问或较慢的磁盘访问引起的。

我可以轻松地看到有人如何建立基准,以证明它们相差1%或相同或VM更快。当您的过程利用了本地硬件支持的优势时,请勿添加任何内容,而VM需要在本地硬件支持中使用软件对其进行仿真。


这就是我想要的。+1
Phil Ricketts

1

您正在尝试将某些物理硬件上安装的操作系统,软件和数据与自身在相同原始硬件上的虚拟机管理程序中安装的同一操作系统,软件和数据进行比较。这种比较只是无效的,因为几乎没有人这样做(至少起初是这样)。当然那可能会慢一些。幸运的是,它完全错过了为什么要虚拟化服务器的最普遍点。

这里一个更好的例子是查看数据中心中的两个(或更多!)旧服务器。寻找性能不错的服务器,但现在已经过时并且在刷新周期内即将出现。这些服务器在较旧的硬件上已经可以很好地运行,因此,由于摩尔定律,您所获得的任何新东西都将被过分规范。

所以你会怎么做?这很简单。无需购买两台新服务器,而只需购买一台,然后将两个旧服务器迁移到同一台物理新设备。在准备购买新服务器时,您应该进行计划,以便有足够的能力来处理两个旧服务器的负载以及虚拟机管理程序的任何负载(也许还有一些额外的负载,以便仍然可以提高性能并提高性能)。可以考虑增长)。

总结:虚拟机可在大多数情况下提供“足够好的”性能,并帮助您更好地利用服务器以避免“浪费的”计算能力。

现在让我们进一步延伸。由于这些是旧服务器,也许您正在寻找几个简单的$ 1500比萨饼盒服务器来替换它们。很有可能,即使是这些披萨盒中的一个,仍然仍然可以轻松处理这两种假设的较旧机器的负载……但是,假设您决定在一些实际硬件上花费7500美元或更多。现在,您拥有一台设备,可以轻松处理多达十二个现有服务器(取决于您处理存储和网络的方式),而初始成本仅为5。您还具有仅管理一台物理服务器,去耦的优点。您可以从硬件中购买软件(即,现在不再需要硬件更新即可获得新的Windows许可证或导致停机),可以节省大量电量,而且虚拟机监控程序可以为您提供比性能更好的性能信息。我曾经有过。获取其中两个,具体取决于您的规模,整个数据中心可能只有两台机器,或者您想使用第二台服务器作为热备用服务器,以讲述一个更好的高可用性案例。

我的意思是,这不仅仅是性能。 我绝不会因为拥有完美的优质生产服务器而将其单独虚拟化为等效的硬件。它更多地涉及节省成本和您可以从合并中获得的其他好处,例如高可用性。实现这些优势意味着您要将服务器移至不同的硬件,这又意味着您需要花一些时间适当调整硬件大小,包括考虑虚拟机管理程序损失。是的,您可能总共需要的计算能力要比这些机器中的每台都在自己的物理设备上略高(提示:您实际上可能需要的总计算能力要少得多),但这会便宜很多,更节能,而且更容易维护 运行一台物理服务器比运行多台物理服务器要好。


2
合并和节省成本并非总是如此。系统管理程序是一种具有许多功能的产品,其中许多功能有可能独立于大多数人进行虚拟化的原因来增加业务价值。合并和节省成本可能是该业务价值的一部分,也可能不是。快照,实时迁移,Storage vMotion和硬件抽象可能都是业务IT策略的一部分。
jgoldschrafe 2011年

@jgold点已采取。您甚至忘记了一个大问题:高可用性。在我的辩护中,我在上次编辑中确实提到了硬件摘要(对于某类),对于刚刚从原始问题的角度探索虚拟化的人来说,整合/成本是传达的真正重点。
乔尔·科尔

该问题询问性能的比较,这是要研究虚拟化的一个完全有效的方面,而不是关于为什么虚拟化有用或无用的问题。
尼克·贝德福德

0

我刚刚升级到SSD(OCZ Vertex 2),并且在其上运行XP VM开发环境,我是一名软件开发人员。我注意到的一件事是,当我启动一个程序时(一个足够大的程序需要花费一些时间来加载),虚拟CPU的一个核心就会挂出。加载IE时也会发生这种情况。由于CPU固定了,所以我认为瓶颈是CPU而不是SSD。但似乎很奇怪,我有一种感觉,如果在物理机上完成相同的操作,它将加载得更快,我的感觉是,VMWare正在做一些额外的处理开销,这会占用磁盘访问的CPU。

例如,我使用Delphi,在一台带有常规HDD的物理机上,从冷启动开始可能需要20秒钟。在运行SSD的VM中,从冷启动开始加载它需要19秒。没什么大不了,我敢打赌,如果SSD在物理机上,它将加载得更快。但是,我没有检查物理机上的CPU使用率,它可能也是CPU的瓶颈。

但是VM的感觉是磁盘访问使VM负担重。


0

显然,虚拟机比物理机慢。但是,在这种情况下,您必须评估最能满足需求的方案。如果只需要一个系统并且需要快速,则将其直接安装到硬件上。另一方面,如果您需要灵活性,可伸缩性(以及所有其他虚拟化优势:P),则可以部署VM。速度会变慢,但是恕我直言,在某些情况下这是合理的,并且性能不会显着降低。


0

在这方面,微软似乎已经使用BizTalk服务器和SQL Server在不同的配置中进行了一些基准测试。请参阅下面的链接:

http://msdn.microsoft.com/zh-CN/library/cc768537(v=BTS.10).aspx


3
请在您的答案中引用结论,否则提供的链接仅比SPAM多。谢谢。
克里斯S

SQL Server的虚拟与物理比率(使用BizTalk:Messaging / Documents / Sec度量标准,似乎是真实世界)被引用为88%-使用HyperV。不好看
deadbeef 2012年

哦,天哪,那是250MB的PDF文件吗?O_O
大卫Balažic

-1

理想情况下,Virtual PC的性能为:

CPU:主机的96-97%

网络:主机的70-90%

磁盘:主机的40-70%


3
而这些数字来自....
吉姆乙

-4

抱歉,不同意TomTom。

我使用VMware Workstation已有一段时间,主要是在Windows XP,Windows Vista和现在的Windows 7本机系统上运行,以运行不同的Windows版本以及Ubuntu。

是的,虚拟化环境比本机系统慢,并且可能在5到100%的范围内。

主要问题不是CPU负载过多,而是物理内存不足。

假设您有一个运行于4 Gb系统上的Windows Seven 64 Ultimate,该系统在空闲时几乎需要1.5 Gb并占用约10%的CPU。启动额外的VMware层将花费您约300 Kb,CPU负载将上升约20%。然后在VMware中启动虚拟系统将要求您至少为该虚拟机定义的内存量最少,对于任何体面的系统至少要有1 Gb。然后,如果虚拟机是Ubuntu,则您将看到〜60%的CPU负载,而对于最新版本的Windows OS,则将看到〜80%的CPU负载。

现在,您将在该虚拟机中启动不同的应用程序。

如果您为该虚拟机设置的内存量不足,则虚拟化系统将开始交换,从而大大降低其整体性能和响应速度。

如果您为该虚拟机设置的内存量加上本机系统所需的内存量之和高于本机系统的内存量,则将交换本机系统,从而减慢速度本机和虚拟系统。

因此,它首先取决于本机和虚拟机所需的内存平衡。

现在,CPU负载几乎相同。如果虚拟化应用程序需要巨大的CPU负载,而本机应用程序也需要巨大的CPU负载,则您的本机系统将必须管理优先级并平衡其不同应用程序之间的CPU费用,虚拟化系统只不过是一个应用程序而已这种现象是经典的CPU负载问题,您可以通过应用优先级来解决。

因此,如果您需要使用虚拟化,那么我的第一个建议就是在计算机上放置一堆内存,无论您是在本地还是在虚拟机上使用什么操作系统。

只是我的2美分。

最好的祝福。


想象一下这种配置:12 GB内存,两个四核处理器。最重要的是,只有1个虚拟机具有11,5 GB内存和所有CPU能力。还会有一些明显的放缓吗?
Michal Illich'4

3
闲置时,Win7 x64如何需要1.5 GB(或任何CPU时间)?根据我的经验,它更像384-512MB-其余仅保留用于I / O缓存,如果需要,将在其他地方释放^^
Oskar Duveborn 2010年

4
但是,您所说的是工作站虚拟化,而不是裸机虚拟机管理程序,与在Windows上进行虚拟化相比,其开销只是一小部分。Ubuntu云可能还不是裸机管理程序,但它几乎没有使用Windows的资源-它运行在没有GUI的Ubuntu Server上。
乔恩·罗德斯

3
-1:比较差。VM Workstation不是管理程序。其次,您正在谈论在主机上运行高负载;当然,这会对来宾VM产生影响。
gravyface

1
@ Oskar>闲置时,Win7 x64如何需要1.5 GB(或任何cpu时间)?我的经验更像384-512MB看看这张照片theliberated7dwarfs.as2.com/pictures/png/W7-Mem.png Windows 7-64,4 Gb RAM,全新重启,没有应用程序运行,但MSFT Essential Security卡珀斯基!糟糕:已使用1.53 Gb的RAM和平均7%的CPU负载!@ TomTom&gravyface 1-最初的问题是关于通用VM机器,而不是虚拟机管理程序!2-我疯狂的技术平台为MSFT和VMware带来了财富。你可能会喜欢还是不喜欢,我不会怪你;)亲切的问候
糊涂蛋

-4

根据我的经验,虚拟机始终比物理机慢很多。

您只会在运行会打磁盘并给CPU大量负担的应用程序时注意到它。我已经在虚拟机上运行了许多数据库和Web服务器,并且作为最终用户以及其他最终用户的反馈(即:从远程Web浏览器访问应用程序)在使用虚拟机时存在很大的滞后。

当然,正确配置的虚拟机可能达到80%(我不知道实际数字)或物理机的速度如何,但是最终您必须真正深入了解应用程序的工作以及虚拟机的运行方式作品。因此,我想这是一个成本方程,说明您花费大量时间配置虚拟机而不是仅仅购买和托管一台新服务器。

对我而言,虚拟机与性能无关,而是与易于管理和托管多个性能较低的VM有关。


2
您似乎在运行真正的废话虚拟化技术。认真;)MS与Hyper-V和SQL Server进行了性能比较-得出的数字大约是裸机的3%。自然地,这意味着仅运行一个虚拟机,或者接受性能分散的情况-但是虚拟化的开销确实很低。而且,这不仅仅是关于托管几个低性能虚拟机的。这也可能与易于维护有关-将VM轻松迁移到新的硬件战中,物理机器可能会更加复杂。
TomTom

@TomTom。我想相信您,但是Microsoft当然有兴趣告诉所有人,他们的管理程序超级快。我从尝试过Microsoft虚拟化和VmWare的公司知道,微软所说的只是“营销”。您是否自己实际进行过基准测试?如果您得到3%的开销,那么请让我知道您的设置,因为我想尝试一下
Zubair

2
闭嘴,祖拜尔。我不是白痴-我以前在做测试。这些天,我一直在将很多东西移到虚拟机上,几乎没有运行任何物理操作。我做了基准测试。自然,虚拟机管理程序很棘手-人们在计算机上放置了很多服务器并使其过载。实际上最有可能在IO领域(光盘性能)。但是,这并不是管理程序固有的。与RAM相同-是的,您需要大量资源,是的,要模拟的机器仍然需要其RAM量才能提高效率。但这不是管理程序问题。
TomTom

2
@TomTom。您是否有任何链接可以阅读,以了解有关这些虚拟与物理性能测试的更多信息
Zubair

1
@Zubair-尽管我本人是100%的VMWare管理员,但我必须对此同意TomTom,但我发现现代,配置良好的硬件上CPU和内存操作的性能下降很少,是的,大量并发混合读写IO比CPU和内存的影响明显更大,但我们仍在谈论整体数字损失一位数的问题。我在一家拥有8,000多家公司的公司中管理着近1,000台ESXi主机,我们相信只有少数非常受IO约束的应用程序不适合ESXi。
斩波器
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.