虚拟机是否比底层物理机慢?

Mic*_*ich 57 virtualization cloud-computing performance benchmark

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

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

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

Hel*_*ick 31

裸机\Type 1 Hypervisor 上的通用服务器工作负载的典型体验是大约 1-5% 的 CPU 开销和 5-10% 的内存开销,还有一些额外的开销取决于整体 IO 负载。这与我在 VMware ESX\ESXi、Microsoft Hyper-V 和 Xen 下运行的现代客户操作系统的经验非常一致,其中底层硬件已经过适当设计。对于在支持最新 CPU 硬件虚拟化扩展的硬件上运行的 64 位服务器操作系统,我希望所有类型 1 管理程序都朝着 1% 的开销数字前进。在这一点上,KVM 的成熟度并不完全取决于 Xen(或 VMware),但我认为没有理由认为它会比您描述的示例明显更糟。

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

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

  • 你使用过时的技术——尤其是 5% 到 10% 的内存开销是旧硬件。如果虚拟机管理程序支持,较新的硬件芯片的开销约为 2% 到 3% - 我们谈论的东西是一年前的新东西。那时 AMD 和 Intel 改进了他们用于 Hyper-Visor 内存映射的 API。正如您稍后所说,它们变得非常透明(目标为 1%)。+1 指出真正的好处。 (8认同)

小智 23

“性能”有很多方面。n00bs 测量操作系统的启动时间,并说例如 Windows 2012 非常棒,因为它在真正的 HD 上启动时间为 12 秒,而在 SSD 上可能为 1 秒。
但是这种衡量不是很有用:性能等于操作系统启动时间,但操作系统每月启动一次,因此优化没有多大意义。

因为这是我的日常事务,我可能会指出构成“性能”的以下 4 个部分

  1. CPU 负载
    这应该是可比的,这意味着在裸机上花费 1000 毫秒的任务将在 1000 毫秒的处理时间内执行,在相同硬件上的空闲 VM 环境中可能会在 1050 毫秒的时钟时间内执行(稍后会详细介绍)。在 MSDN 上搜索 processtime 和 queryperformancecounter,你可以做一个事情来显示 VM 占用了你的 CPU 时间。

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

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

  4. 到客户端的网络延迟
    这里,WYSIWIG progs(如 word 2010、Openoffice Writer、LaTEX、GSView 等)的可用性高度依赖于速度——鼠标操作从客户端到服务器的速度。尤其是在 CAD 应用程序中,这很重要……但也不是 LAN 问题,这是通过 WAN 进行远程访问,这一点很重要。

但是 - 我从多年咨询的角度来说 - 有些用户拥有管理员密码(他们通常是一家拥有大量预算和大量钱包的大公司的员工)抱怨这个和那个,但必须澄清哪些性能组件对他们很重要,哪些从他们使用的应用程序的角度来看很重要。
它很可能不是记事本,而是一个用于设计这个和那个的高度复杂的应用程序,它也非常昂贵,应该转移到 VMware、HyperV 或 Xenapp 上,但它没有按预期执行。

但是他们没有想到它可能会在不是为纯 CPU 性能而设计的刀片上运行在 1.5 GHz 至强处理器上,它们是为平均而构建的,比如说“针对每个 CPU 周期的美元进行优化”或“每瓦的 CPU 周期” .

当我们谈论权衡和节约时 - 这主要导致过度承诺。过度使用会导致资源不足,而 CPU 可以很好地处理,但内存不足会导致分页,核心路由器中缺乏 IO 会导致响应时间增加,任何类型的存储上的事务过载可能会停止每个有用的应用程序从反应太快。这里需要监控,但是很多软件供应商都不能提供这样的信息......另一方面,拥有3台物理服务器资源的主机很可能可以像物理机一样处理8台相同布局的虚拟机......

空闲系统上的 CPU 权衡通常会导致系统执行速度比物理系统慢 50%,另一方面,没有人能够安装客户的 IT 人员想要迁移到 VM 中的“真实世界”操作系统和“真实世界”应用程序盒子。并且需要数天(也许数周,但肯定有 42 次会议)才能明确 VM 技术可以通过交换纯 CPU 速度来提供灵活性。这只是内置在这些刀片系统上的 CPU 中,这些刀片系统托管着当今更大的 VM 环境。此外,内存将无法比较,也需要进行一些权衡。DDR3 1600 CL10 将拥有比 DDR2 800 ECC LLR 更高的内存带宽——每个人都知道 Intel CPU 以不同于 AMD CPU 的方式从中获利。但它们很少用于生产环境,在第三世界国家的白盒或数据中心提供更多数据中心服务,其价格仅为您本国数据中心的 10%。多亏了 Citrx,如果最终用户和数据中心之间的延迟小于 150 毫秒,数据中心就可以无处不在。

而家庭用户的观点......

最后但并非最不重要的是,有些人想扔掉 Win7 或 XP 并用它换取 Linux,然后游戏问题就出现了,因为实际上只有少数游戏可用于 Linux 和 Windows。游戏高度依赖 3D 加速。VMWare 6.5 Workstation 和连接的免费播放器可以处理 DirectX 9,这意味着 VM 中的 Doom3 可以在主机显卡上全屏运行。游戏大多是 32 位应用程序,因此它们不会占用超过 3 GB 的空间,并且大部分不会超过 3 个 CPU(见于孤岛危机)。较新的 VM 播放器和 WS 可以处理更高的 DirectX 版本,可能还有 OpenGL...我在 VMware 6.5 上玩 UT 和 UT2004,主机有一个 ATI Radeon 2600 移动设备和一个 T5440 CPU。它稳定在 1280x800 并且即使在网络游戏上也能玩......


小智 9

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

  • 在同一台服务器上的两个 VM 上运行的两个软件的通信速度不会比一台裸机服务器上同一操作系统下的两个软件快。 (3认同)

Tom*_*Tom 8

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

  • 需要引用。 (13认同)
  • 这取决于很多因素,没有人可以回答你的问题。这取决于您拥有哪个虚拟机管理程序、服务器规格、存储以及最重要的是当时主机的其他情况。 (9认同)
  • 我相信你。但仍然:您能否将某人实际测量的基准链接起来? (4认同)