Citrix Virtual Apps and Desktops 单服务器可扩展性

贡献者

作者: Nick Rintalan

概述

本文提供建议和指导,用于估计单个物理主机上可以支持多少用户或虚拟机 (VM)。这通常称为 Citrix Virtual Apps and Desktops“单服务器可扩展性”(SSS)。在 Citrix Virtual Apps (CVA) 或会话虚拟化的上下文中,它通常称为“用户密度”。这个想法是确定在运行 XenServer 等主要 Hypervisor 的单个硬件上可以执行多少用户或虚拟机。

在本文中,我们将介绍一些影响 Citrix Virtual Apps and Desktops (CVAD) SSS 的变量或因素。然后,我们将提供建议和简单的指导方针,以快速估算给定环境的 SSS。最后,我们将提供一些使用真实场景的大小示例。

警告! 本文包含估计 SSS 的指南。应该注意的是,指导是高水平的,并不一定是针对您的独特情况或环境。真正理解 CVAD SSS 的唯一方法是利用可扩展性或负载测试工具,如登录 VSI。Citrix 建议使用此指南和这些简单规则来快速估计 SSS。但 Citrix 建议您使用登录 VSI 或您选择的负载测试工具来验证结果,尤其是在购买硬件或做出任何财务决策之前。

可扩展性因素

影响 SSS 的因素、参数或变量有很多。这绝不是详尽无遗的清单,但以下是影响 SSS 的一些主要因素。虽然还有许多其他因素影响性能和可扩展性,如防病毒和监视代理、图形编码、最近的安全漏洞(如 Spectre 和 L1 终端故障),但下面详细说明的因素通常对 CVAD SSS 的影响最大。现在让我们来看看如何使用简单的公式快速估计 CVAD SSS。

工作负载

影响性能和可扩展性的主要因素之一是工作负载本身。某些工作负载可能涉及在 CVA 服务器上执行简单的数据输入任务的任务工作人员。其他工作负载可能涉及开发人员编译代码或工程师通过 Citrix Virtual Desktops (CVD) 操作 3D 模型。这些工作负载通常分别称为“轻”和“重”工作负载。正如本文后面将看到的那样,这种类型的工作负载差异可能会对 SSS 产生巨大影响。

硬件

运行工作负载的物理硬件对 SSS 有直接影响。毋庸置疑,配备了 28 个内核和 1 TB RAM 的较新服务器将能够支持更多用户,而较旧的硬件只有 12 个内核和 256 GB RAM 运行类似的工作负载。CPU 在 CVAD SSS 中起着特别重要的作用,正如您稍后将看到的那样。

活动比率

SSS 经常被忽视的一个方面是活动比率或用户工作与闲置的频率。许多可扩展性测试工具采取保守的方法,并且可能会使用相当高的活动比例,如 80%(这实际上意味着用户处于活动状态或工作时间 80%,空闲时间的 20%)。然而,我们经常在现实世界中看到活动比率接近 40-60%。这种额外的空闲时间可能会极大地影响 SSS 以及需要购买多少硬件才能支持 CVAD 环境。

CPU 超订阅率

大多数 CVAD 工作负载都是 CPU 绑定的,这意味着资源耗尽的最终点与系统中可用的物理内核数量直接相关。而且,由于用户可能无法 100% 处于活动状态,并且我们有诸如英特尔超线程等工具(更不用说 Hypervisor CPU 调度程序的效率越来越高),我们经常会“过度提交”或过度订阅资源,如 CPU。而超额订阅 CPU 的比率也会影响 SSS(如果没有仔细完成,则以正面或负面的方式)。Citrix 发现,当涉及到 CVA SSS 时,2:1 CPU 超订阅率往往是最佳的。例如,如果物理服务器配备双插座 20 核芯芯片(即“2 x 20”),则总共有 40 个物理内核可用。启用超线程后,将有 80 个虚拟或逻辑内核可用。通过对物理内核数量(40)应用 2:1 的比率,我们有效地建议在调整 SSS 大小或估算 SSS 时使用 80 个内核。本文末尾将提供更多示例,以进一步详细说明这一概念。

微处理器体系结构和功能

底层芯片和存储器体系结构在 SSS 中也可发挥重要作用。英特尔最近在底层微处理器体系结构设计方面做出了显著改进。在旧芯片上,如布罗德韦尔和哈斯韦尔,英特尔使用基于环的体系结构连接处理器。但随着内核数量的增加,访问延迟的增加,每个内核的带宽减少了,因此英特尔可以通过将芯片分成两半,并添加第二个环以缩短距离来缓解这种情况。而这种看不见的分割是需要考虑到 CVAD SSS 以提供最佳结果的因素。这在过去被称为“NUMA”或非统一内存访问。领先的指导是确保尽可能调整 CVA 虚拟机的大小,但不能同时跨越 NUMA 节点、子 NUMA 群集或环。如果您的 CVA 虚拟机大小过大,并且它们有效地跨越了 NUMA 节点或环,它可能会通过访问非本地资源导致 NUMA“崩溃”,从而降低 SSS。快进到今天,英特尔已经从基于环的体系结构转向基于网格的体系结构。Skylake 引入的这种新型网格体系结构并没有像以前那样在拆分芯片、分割内核或添加环的局限性。这改变了我们特别规模 CVA 服务器的方式。因此,了解您购买的硬件中使用的特定芯片以及底层微处理器体系结构是如何设计和构建的,这一点非常重要。

魔法乘数

如果您想快速测量或估计 CVAD SSS,本指南非常有效。这很容易- 把服务器中的物理核心数量乘以 5 或 10,结果将是您的 SSS。如果您正在寻找可以支持的 CVD 虚拟机的数量,那么您将使用 5 的“魔法乘数”。如果您试图了解可以在单个硬件上运行多少 CVA 用户,则可以使用 10。让我们来看看几个真实世界的例子,看看这是如何在实践中应用的。

示例 1:Citrix Virtual Desktops

假设您正在使用标准 Office 应用程序和一些自定义应用程序运行 Windows 10。鉴于工作负载/映像,您已确定 2 vCPU/4 GB RAM VM 规范最适合工作。您正在考虑购买具有 36 个物理内核(2x18)和 768 GB 内存的思科刀片。你想知道你可以期待什么样的密度。让我们利用 CVD 的 5 规则:

5 x 36 = 每台主机 180 台虚拟机

示例 2:Citrix Virtual Apps(旧硬件)

假设您正在通过 CVA 在 Windows Server 2012 R2 上运行诸如 SAP 之类的应用程序。您正在重新使用一些较旧的惠普刀片,其中包含 24 个物理内核(2x12)和 256 GB 内存。您在英特尔网站上研究了底层芯片采用环形缓冲体系结构,每个套接字都有效地分成 2 个 NUMA 节点,每个节点有 6 个内核。因此,6 vCPU/24 GB RAM VM 规范似乎是最佳的,可以最大限度地提高线性可扩展性并最大限度地减少 NUMA 颠簸。使用 2:1 的 CPU 超订阅比率,您将利用所有 48 个逻辑内核,并在每个主机上部署 8 个 XenApp 服务器(48/6 = 8)。对 CVA 利用规则 10:

10 x 24 = 每台主机 240 个用户

示例 3:Citrix Virtual Apps(较新的硬件)

假设您正在通过 CVA 在 Windows Server 2016 上运行流行的医疗保健应用程序。您正在考虑购买带有 32 个物理内核(2x16)和 256 GB 内存的戴尔刀片。您在英特尔的网站上研究了底层芯片采用网状体系结构,并且有一项业务指令可以尽可能减少虚拟机占用空间。您决定一个 16 个 vCPU/ 48 GB RAM VM 规范。使用 2:1 的 CPU 超订阅比率,您将利用所有 64 个逻辑内核,并在每个主机上部署 4 个 XenApp 服务器(64/16 = 4)。对 CVA 利用规则 10:

10 x 32 = 每台主机 320 个用户

如前所述,我们意识到与服务器中物理内核数量相比,还有更多的变量或参数影响可扩展性。在某些情况下,CVAD 工作负载实际上不是 CPU 绑定的,因此在调整大小时需要额外小心。此外,我们还没有讨论过的其他因素,如 CPU 时钟速度和登录风暴也很重要,使大小调整工作变得更加复杂。但是,我们通过多年的现场经验和数百次部署发现,没有什么事情像物理核心数量那么重要。如果您想了解针对特定工作负载和独特环境的确切 SSS,Citrix 强烈建议您使用登录 VSI 等工具来正确测试和/或验证结果。

引用

英特尔至强处理器可扩展系列技术概述

防病毒最佳实践

登录 VSI 负载测试

Citrix Virtual Apps and Desktops 单服务器可扩展性