设计决策:单服务器可扩展性
概述
本文提供建议和指导,用于估计单个物理主机上可以支持多少用户或虚拟机 (VM)。这通常称为 Citrix Virtual Apps and Desktops “单服务器可扩展性” (SSS)。在 Citrix Virtual Apps (CVA) 或会话虚拟化的上下文中,它也通常称为“用户密度”。我们的想法是确定在运行主要虚拟机管理程序(如 Citrix 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% 处于活动状态,而且我们有英特尔 Hyper Threading 等工具可用(更不用说虚拟机管理程序 CPU 调度程序越来越高效),因此我们经常可以 “过度使用” 或过度订阅资源,例如 CPU。而超额订阅 CPU 的比率也会影响 SSS(如果没有仔细完成,则以正面或负面的方式)。Citrix 发现,在 CVA SSS 中,2:1 CPU 超额订阅率通常是最佳的。例如,如果物理服务器配备双插槽 20 核芯片(即 “2 x 20”),则总共有 40 个物理内核可用。启用超线程后,将有 80 个虚拟或逻辑内核可用。通过对物理核心数量 (40) 应用 2:1 的比率,我们有效地建议在调整或估算 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虚拟桌面
假设您正在使用标准 Office 应用程序和一些自定义应用程序运行 Windows 10。您已经确定,在工作负载/映像的情况下,2 vCPU /4 GB RAM VM 规范最适合。您正在考虑购买配备 36 个物理内核 (2x18) 和 768 GB RAM 的 Cisco 刀片式服务器。而且您想了解您可以期待什么样的密度。让我们利用 CVD 的 5 规则:
5 x 36 = 每台主机 180 台虚拟机
请注意,Citrix 专用 VDI 和基于 RDSV 的工作负载在 99.9% 的时间里是 CPU 限制的。与内存、磁盘存储或网络存储相比,CPU 已成为可扩展性瓶颈。这些乘数会省略 CPU 以外的其他区域,因为 CPU 已成为主要因素。 尽管超线程、时钟速度和虚拟内核都很重要,但没有什么比服务器上的物理核心数量更重要的了。当使用 5 和 10 规则时,最好首先忽略所有其他数字以进行初始尺寸以避免混淆。
示例 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 RAM 的 Dell 刀片式服务器。您已经在 Intel 的网站上研究过底层芯片采用网状体系结构,并且有一个业务指令可以尽可能减少虚拟机占用空间。您决定一个 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 之类的工具来正确测试和/或验证结果。