多个 vCPU 还是多个相同的 VM,哪个更好?

多个 vCPU 还是多个相同的 VM,哪个更好?

我正在考虑升级我们的一台服务器,这是一台运行 VMware Server 2 的 8 核服务器。它运行的虚拟机主要是 Web、文件和电子邮件服务器;具体来说,它运行三个 Web 服务器、两个电子邮件/文件服务器和一些 Jabber/XMPP 服务器。

当我们最初设置这台机器时,我们为两个 Web 服务器配置了两个 vCPU。我们遇到了一些非常严重的性能问题当时我们只运行 3 个虚拟机,总共 5 个 vCPU。我们还运行VMware 服务器1和一个RAID1。我们现在已经升级到 RAID10,我永远不会考虑任何更低的配置!:-)

新服务器上将安装 VMware ESXi,而不是 VMware Server。我们正在寻找另一台具有更快处理器的 8 核机器,或者 16 核或 32 核服务器。我想确保避免我们之前遇到的问题。

由于我之前遇到过多个 vCPU 的问题,所以我的计划是用多个相同的 Web 服务器虚拟机(2 - 4 个)替换主 Web 服务器虚拟机,每个虚拟机都有一个 vCPU,从 NFS 共享提供内容,并将它们置于负载平衡配置中。因此,我基本上会用至少 4 个虚拟机替换一个虚拟机:2 个小型 Web 服务器虚拟机、一个文件服务器虚拟机和一个负载平衡虚拟机。我的计划有两个方面:首先,我可以避免之前看到的任何多个 vCPU 的使用,其次,我可以生成新的 Web 服务器虚拟机来处理增加的负载。

请注意,我明白我不是获得负载平衡的所有好处,因为我仍然有一个单点故障

这是一个好计划,还是没有必要?VMware ESXi 能否比 VMware Server 1 更好地处理多个 vCPU三年前?在负载平衡配置中,具有 2 - 4 个 vCPU 的单个大型 Web 服务器 VM 或具有单个 vCPU 的 4 个 VM,哪个性能更好?

答案1

VMware ESXi 能否比三年前的 VMware Server 1 更好地处理多个 vCPU?

是的,它们是完全独立的产品线,ESXi 可以很好地处理多个 vCPU。我现在正在运行一个 5 节点的 vmware 农场,每个盒子上都有混合机器,每个机器根据需要配备 1、2 甚至 4 个处理器,而且它确实运行得很好。

在负载平衡配置中,具有 2 - 4 个 vCPU 的单个大型 Web 服务器 VM 或具有单个 vCPU 的 4 个 VM,哪个性能更好?

这不是一个 VMWare 问题,而是一个应用程序/网站测试问题。VMWare(或任何其他现代裸机虚拟机)可以采用任何一种方式 - 将大量 vCPU 连接到一个客户机可能会产生成本,但这可能会被运行多个客户机的资源成本以及您的 Web 应用程序可能从更分布式的方法中实现的性能问题(或改进)所抵消。

关于最后一个问题,这实际上是测试和架构偏好的问题,而不是唯一正确的方法,但我的总体感觉是,如果您可以轻松地将应用程序分发到多个虚拟机上,那么最好构建几个较小的虚拟机,而不是构建一个大的虚拟机。这为您提供了更大的灵活性,并且从长远来看有助于提高性能,因为您可以在必要时移动东西。换句话说,向外扩展而不是向上扩展

对于物理机,我认为我们会考虑向上扩展,将尽可能多的东西放入一个操作系统“实例”中,以最大限度地利用许可证和硬件的成本,但对于虚拟机,这些等式会有所改变——如果您可以以许可证的价格获得多个虚拟操作系统实例,那么这可能会改变您的服务器基础设施的设计方式。

编辑

http://blog.peacon.co.uk/understanding-the-vcpu/是 Iain 在聊天中讨论此问题时提到的一篇文章,其中详细解释了为什么在创建虚拟机时考虑 vCPU 分配很重要。

答案2

我可以用多种方式来解决这个问题,但我将从水平与垂直扩展开始。

水平扩展

优点

  • 可以扩大规模
  • 可以跨主机扩展(即 VMware 集群)
  • 容错
  • 维护期间停机时间短/无停机时间

缺点

  • 虚拟机操作系统和负载均衡器的开销更大
  • 更多维护/管理(例如修补、SSL 证书)
  • 跨 Web 服务器的更多网站版本管理
  • 负载均衡器后面的网站可能需要额外的测试和开发
  • 许可?

垂直扩展

优点

  • 扩展更容易(只需添加两个 vCPU 或更多内存)
  • 仅需管理、授权等一个 Web 服务器。

缺点

  • 维护/升级期间的停机时间
  • 扩展过大可能会导致虚拟机出现性能问题。
  • 无法真正扩展。

因此,两者都有其优点和缺点,我非常喜欢水平扩展,但这是我向您推荐的:

  1. 垂直缩放到某个点(我将在一分钟内到达该某个点)。
  2. 做好功课,了解水平发展需要花费多少时间和金钱。
  3. 给自己充足的时间来测试水平扩展解决方案。
  4. 当您到达水平扩展的时间点时,您可以重新缩减垂直扩展的服务器,进行一些克隆,将它们放在已经配置的负载均衡器后面,然后观察它的运行情况。

好的,那么那个特定的垂直缩放点是什么?

这取决于您的硬件。

VMware 做了很多工作vCPU 调度自 ESX 2.x 以来,垂直增长空间更大。增长多少实际上取决于您获得的 CPU。

如今,确定虚拟机的性能需要了解NUMA(非统一内存访问。基本上,您不希望虚拟机大于 CPU NUMA 节点。以下是一些可帮助您了解该领域的链接:

http://frankdenneman.nl/2010/02/sizing-vms-and-numa-nodes/

http://frankdenneman.nl/2010/09/esx-4-1-numa-scheduling/

http://frankdenneman.nl/2011/01/amd-magny-cours-and-esx/

我想最后说一句,CPU 对我来说从来都不是太大的问题,除非你的主机 CPU 用量过大。相反,内存通常是罪魁祸首。内存膨胀/交换操作系统非常明显的性能问题。

祝你好运!

相关内容