将应用程序服务器虚拟化到 Xenapp 上的好处

将应用程序服务器虚拟化到 Xenapp 上的好处

除了更容易部署和管理之外,虚拟化应用程序服务器是否还有性能优势?

例如,与具有相同硬件规格的 1 个物理应用服务器相比,我是否可以在单个 Xenserver 上的 4 个应用服务器 VM 上容纳更多的操作用户?

答案1

绝大多数服务器工作负载从未将系统推至充分利用现代服务器资源的水平,根据我的经验,平均物理系统运行在 10% 或更低的负载水平。所有虚拟化解决方案都允许您以一种能够更好地利用物理硬件的方式整合这些负载。良好的虚拟化解决方案提供了管理工具,使管理多个系统更加容易,实现容错\高可用性、实时迁移、更简单的工作负载配置以及许多其他好处。

虽然虚拟化通常存在性能权衡,但这些权衡相对较低。通用工作负载的权衡为 5%,最差的权衡为 10-20%。考虑到服务器性能每代提升 20% 到 50%,性能方面的权衡很少会成为阻碍。但可能会如此,并且这些极端情况应该从虚拟化中排除。

在某些情况下,虚拟解决方案的表现可以优于跨多台服务器的物理实现。像虚拟性能损失不可接受的情况一样,这些情况很少见,但确实存在。例如,具有前端服务的多层应用程序\依赖于与一个或多个后端数据库的网络连接的应用程序层可以从单个虚拟主机内虚拟网络堆栈的效率中受益。@pjz 给出了一些单一工作负载类型场景的很好的例子,在这些场景中,虚拟化可以提高整体性能,因为横向扩展(扩展到多个并行系统)比纵向扩展(构建一个高效的多线程应用程序,可以高效地扩展到当前服务器核心数)更容易实现。

鉴于您的示例,答案是视情况而定,但如果您谈论的应用程序服务器是 XenApp,而虚拟机管理程序是 XenServer,那么我认为您将能够通过采用虚拟路由而不是本地运行来支持更多用户,前提是您谈论的是具有大量核心的最新服务器。VMware 有一篇旧文章关于在 ESX 3.5 上运行的 XenApp 与本机性能,他们声称在虚拟服务器上运行扩展性更好。这些说法在最新的 XenApp 和 VMware Hypervisor 上是否仍然正确,很大程度上取决于当前版本的 XenApp 在现代硬件上处理 NUMA 架构和多核扩展的能力,我怀疑这仍然正确,尽管我会接受他们声称的 30% 的改进对 vSphere 抱有一定怀疑态度Citrix 声称 XenServer 上的 XenApp 性能优于 vSphere 上的 XenApp,我不能说这是否属实,但在虚拟系统上的扩展行为已经足够明显 -此 Citrix 白皮书表明,在类似的工作负载配置下,基于双 Xeon 5570 的 XenServer 可以支持的并发用户数量是运行在基于 X7350 的服务器(老一代)的两个核心上的物理 XenApp 服务器的 3 倍。使用多个 VM 进行横向扩展效果肯定很好,但从双核扩展到四核效率并不高。这款 AMD演示表明有 70% 的改进从双核迁移到四核时可以支持的并发会话数。我怀疑在当前第 12\16\48 代服务器上本地运行的 XenApp 的扩展性能会非常快地下降,但我找不到任何关于这一点的明确信息。

答案2

正如您所指出的,虚拟化的主要优点是易于管理、故障转移和部署。经过适当设计现代的从理论上讲,应用程序在硬件上直接运行应该比在虚拟机管理程序下的虚拟机中运行效果略好。我能想到的注意事项是:

  • 如果您有一台多处理器机器和一个单线程应用程序,它不允许其自身的多个副本在同一台机器上共存,那么您可以通过在同一台机器上的虚拟机中运行每个副本来“欺骗”它这样做。

  • 如果您拥有一台多处理器、64 位 16+GB-RAM 的机器,那么在可用内存限制(3-4GB,对吗?)下运行的 32 位应用程序如果在同一台机器上的虚拟机管理程序下分片到 4 个虚拟机中,最终可能会表现得更好,因为这将允许它比其他方式处理更多的内存。

性能并不是虚拟化的强项;其强项是您可以在一台机器上管理 4 个具有相互冲突的软件基础设施要求的不同应用程序。

相关内容