Citrix Virtual Apps and Desktops 服务

本地主机缓存的扩展和大小注意事项

本文包含有关本地主机缓存测试的详细信息,以及配置部署时的注意事项。有关本地主机缓存及其工作原理的常规信息,请参阅本地主机缓存

概述

Citrix Virtual Apps and Desktops 服务中的本地主机缓存功能允许在出现中断时在站点中进行连接中转。如果站点与管理控制台之间的 WAN 链接在 Citrix Cloud 环境中出现故障,则会发生中断。2017 年 12 月,我们使用 Citrix Virtual Apps and Desktops 服务本地主机缓存功能测试了 Citrix Cloud Connector 计算机配置。本文档中提供的测试结果详细介绍了 2017 年 12 月测试的最大值。最佳做法建议是根据这些经过测试的最大值提出的。

本文假定读者可以至少使用三个 Cloud Connector 根据建议的标准设置和配置 Citrix Cloud 环境。

本地主机缓存仅支持每个资源位置或区域中的本地 StoreFront。

当中断模式处于活动状态时,如果代理会话的选定 Cloud Connector 出现中断,第二个 Cloud Connector 将成为选定的 High Availability Service。选择后,第二个 Cloud Connector 将接管以代理会话。本地主机缓存功能仅为 Cloud Connector VM 配置的多核 CPU 使用一个套接字。在这种情况下,我们建议使用 4 核、1 插槽配置。

摘要

本摘要中的所有结果都基于测试环境的结果,我们将在以下章节中进行详细配置。不同的系统配置会产生不同的结果。

基于测试结果的主要建议

  • 对于托管不超过 5000 个工作站或 500 个服务器 VDA 的高可用性站点,我们建议您配置 3 个专用于 Cloud Connector 的 VM。每个 Cloud Connector VM 需要 4 vCPU 以及 4 GB RAM。此配置为 N+1 高可用性配置。Cloud Connector 部署在高可用性集中。Cloud Connector 未实现平衡负载。由于每个 CPU 可以处理数量有限的连接,因此 CPU 是与支持的工作站或服务器 VDA 数量相关的最大限制因素。
  • 虽然本文档侧重于使用两个 Cloud Connector 进行测试,但建议使用 N+1 组三个 Cloud Connector。
  • 我们进行了会话启动测试,以便在同步和导入新配置后对本地主机缓存中断模式处于活动状态和非活动状态进行比较。启动测试涵盖了针对相应数量的可用工作站进行 5000 次、20000 次和 1000 次会话启动的情况。
    • 针对 5000 个工作站 VDA 启动 5000 个会话
      • 测试使用 2 个 Cloud Connector VM,其中每个 VM 配备 4 个 vCPU 和 4 GB RAM。根据 N + 1 配置的建议,生产环境应包括 3 个满足这些规范的 Cloud Connector VM。
      • 本地主机缓存服务峰值为 91% 的 CPU 资源,平均有 563 MB 的可用内存。
      • 从 High Availability Service 检测到所有 VDA 的中断之后,大约需要 10 分钟才能重新注册到 High Availability Service(现在称为中转)。我们测量的时间从 High Availability Service 进入中断模式起到 High Availability Service 准备好再次中转会话止。
    • 针对 500 个服务器 VDA 启动了 20000 个会话
      • 测试使用 2 个 Cloud Connector VM,其中每个 VM 配备 4 个 vCPU 和 4 GB RAM。根据 N + 1 配置的建议,生产环境应包括 3 个满足这些规范的 Cloud Connector VM。
      • 本地主机缓存服务峰值占用 90% 的 CPU 资源,平均有 471 MB 的可用内存。
      • 从 High Availability Service 检测到所有 VDA 的中断之后,大约需要 8 分钟才能重新注册到 High Availability Service。我们测量的时间从 High Availability Service 进入中断模式起到 High Availability Service 准备好再次中转会话止。
    • 针对 1000 个工作站 VDA 启动 1000 个会话
      • 测试使用 2 个 Cloud Connector VM,其中每个 VM 配备 2 个 vCPU 和 4 GB RAM。根据 N + 1 配置的建议,生产环境应包括 3 个满足这些规范的 Cloud Connector VM。
      • 本地主机缓存服务峰值占用 95% 的 CPU 资源,平均有 589 MB 的可用内存。
      • 从 High Availability Service 检测到所有 VDA 的中断之后,大约需要 7 分钟才能重新注册到 High Availability Service(现在称为中转)。我们测量的时间从 High Availability Service 进入中断模式起到 High Availability Service 准备好再次中转会话止。

环境概览 Citrix Cloud 负责管理 Cloud Connector 服务,客户负责管理计算机。

测试方法

我们通过增加负载后测量环境组件的性能来进行测试:

  • CPU
  • 内存
  • 数据库加载
  • Citrix Remote Broker Provider 服务
  • Citrix High Availability Service

我们收集了性能数据、登录时间或两者。在某些情况下,专有的 Citrix 模拟工具用于模拟 VDA 和会话。这些模拟工具旨在通过与传统 VDA 和会话相同的方式使用 Citrix 组件,而无需满足托管实际会话和 VDA 的相同资源要求。

本地主机缓存支持每个区域(而非每个站点)对应一个选定的 High Availability Service。例如,如果您有五个区域,请在每个区域中选择一个 Cloud Connector 作为中转站。Citrix Config Synchronizer 服务负责导入 Citrix 管理的站点数据库。每个配置同步操作完成后都会创建一个数据库,因此需要进行初始配置,例如在首次使用数据库时编译存储过程。我们在执行配置同步后执行所有测试。

会话启动测试

在客户管理的 StoreFront 服务器上,我们启动了 5000 次和 20000 次会话测试。监视工具收集 StoreFront 登录时间、资源枚举和 ICA 文件检索。

Citrix 使用模拟工具来促进大批量用户测试。Citrix 专有的模拟工具允许我们使用的硬件少于在这些级别使用实际会话(5000 和 20000 个会话)运行测试所需的硬件。这些模拟的会话将完成正常 StoreFront 登录、资源枚举和 ICA 文件检索过程,但不启动活动桌面。相反,模拟工具向 ICA 堆栈报告会话已启动,并且中转代理和中转服务之间的所有通信都与实际会话的通信一致。性能指标是从 Citrix Cloud Connector 收集的。为了确定环境如何响应会话启动,在整个测试期间随时保持 25 个会话启动的持续并发性。因此,测量结果显示系统在整个测试过程中处于负载过轻的结果。

测试结果

会话启动

下表比较了新的配置同步导入后本地主机缓存中断模式处于活动状态与本地主机缓存中断模式处于非活动状态之间的会话启动测试。每个表都显示测试中启动的会话数的结果。

5000 个工作站 VDA 会话

  本地主机缓存中断模式处于非活动状态(正常操作)/平均计时 本地主机缓存中断模式处于活动状态/平均计时
身份验证 193 毫秒 95 毫秒
枚举 697 毫秒 75 毫秒
总登录时间 890 毫秒 170 毫秒
检索 ICA 文件 4191 毫秒 156 毫秒

20000 个服务器 VDA 会话

  本地主机缓存中断模式处于非活动状态(正常操作)/平均计时 本地主机缓存中断模式处于活动状态/平均计时
身份验证 135 毫秒 112 毫秒
枚举 317 毫秒 91 毫秒
总登录时间 452 毫秒 203 毫秒
检索 ICA 文件 762 毫秒 174 毫秒
  • 5000 个工作站 VDA 会话启动测试
    • 当本地主机缓存中断模式处于非活动状态时,Citrix Cloud Connector 与 Citrix Delivery Controller 之间存在大约 30 毫秒的延迟。
    • 当 StoreFront 处于负载较轻状态时,本地主机缓存中断模式处于活动状态与非活动状态时,登录过程有 720 毫秒的差异。
    • 最大的时间差是 ICA 文件的检索,为 4 秒。这主要是因为 Cloud Connector 正在执行中转,而 StoreFront 流量通常会穿过 Cloud Connector 传输到 Azure 中的 Citrix Delivery Controller,然后反向传输。
  • 20000 次服务器 VDA 会话启动测试
    • 当 StoreFront 处于负载较轻状态时,本地主机缓存中断模式处于活动状态与非活动状态时,登录过程有 249 毫秒的差异。
    • ICA 文件检索的时间差约为 1 秒。
  • 与 5000 个工作站 VDA 会话启动相比,20000 个会话启动测试仅包含 500 个服务器 VDA,从而减少 Citrix Delivery Controller 对 VDA 的调用,这会缩短响应时间。

平均 CPU 使用率比较

会话启动测试   平均 CPU 使用率 (%) 峰值 CPU (%)
5000 个工作站 VDA 会话 连接器 1 8.3 38.2
  连接器 2 8.4 33.3
5000 个工作站 VDA 会话 - 本地主机缓存中断模式处于活动状态 连接器 1(选定了 High Availability Service) 42 91
  连接器 2 0.8 5
20000 个服务器 VDA 会话 连接器 1 23 62
  连接器 2 23 55
20000 个服务器 VDA 会话 - 本地主机缓存中断模式处于活动状态 连接器 1(选定了 High Availability Service) 57 90
  连接器 2 0.8 6.6
  • 下表比较了 5000 个工作站 VDA 和 20000 个服务器 VDA 会话启动测试期间本地主机缓存中断模式处于活动状态与本地主机缓存模式处于非活动状态时的 Citrix Cloud Connector CPU 使用率。
  • 所有 Cloud Connector 均配备 4 个 vCPU 和 4 GB RAM
  • 选定 High Availability Service 计算机的峰值分别达到总体 CPU 的 91% 和 90%。值得注意的是,虽然非选定的 High Availability Service 没有太多的使用率,但如果选定的 High Availability Service 出现故障,它可能会变为活动状态。因此,Cloud Connector 必须具有相同的 Cloud Connector 器规格。

可用内存使用率

会话启动测试   平均可用内存(工作集 MB) 峰值可用内存(工作集 MB)
5000 个工作站 VDA 会话 连接器 1 636 657
  连接器 2 786 801
5000 个工作站 VDA 会话 - 本地主机缓存中断模式处于活动状态 连接器 1(选定了 High Availability Service) 563 618
  连接器 2 912 918
20000 个服务器 VDA 会话 连接器 1 1030 1195
  连接器 2 1178 1329
20000 个服务器 VDA 会话 - 本地主机缓存中断模式处于活动状态 连接器 1(选定了 High Availability Service) 471 687
  连接器 2 1210 1227
  • 下表比较了 5000 个工作站 VDA 和 20000 个服务器 VDA 会话启动测试期间本地主机缓存中断模式处于活动状态与本地主机缓存模式处于非活动状态时的可用内存使用率。
  • 会话数量会降低可用内存量。
  • 本地主机缓存中断模式处于活动状态时,20000 个服务器 VDA 会话的内存使用率会增加 54.35% (559 MB),主要是由于 SQL Server 内存消耗导致的。

Cloud Connector CPU 使用率(按组件)

会话启动测试 组件 平均 CPU 使用率 (%) 峰值 CPU (%)
5000 个工作站 VDA 会话 连接器 1 LSASS 2.4 10.7
  连接器 1 XaXdCloudProxy 3.5 18.5
  连接器 2 LSASS 2.5 12.9
  连接器 2 XaXdCloudProxy 3.5 21.2
5000 个工作站 VDA 会话 - 本地主机缓存中断模式处于活动状态 连接器 1(选定了 High Availability Service)LSASS 12.9 29.5
  连接器 1(选定了 High Availability Service)HighAvailabilityService 14.7 49.7
20000 个服务器 VDA 会话 连接器 1 LSASS 7 12.2
  连接器 1 XaXdCloudProxy 8.7 15.5
  连接器 2 LSASS 7 12.5
  连接器 2 XaXdCloudProxy 9 15.7
20000 个会话 - 本地主机缓存中断模式处于活动状态 连接器 1(选定了 High Availability Service)LSASS 4.3 17.2
  连接器 1(选定了 High Availability Service)High Availability Service 4.5 18.2
  • 上表显示了与 5000 个工作站 VDA 和 20000 个服务器 VDA 会话启动测试期间本地主机缓存中断模式处于非活动状态时相比,本地主机缓存中断模式处于活动状态时占用最多总体 CPU 资源的进程。
  • 当本地主机缓存中断模式处于非活动状态时,Citrix Remote Broker Provider 服务 (XaXdCloudProxy) 是最高的 CPU 使用者。
  • LSASS(本地安全机构子系统服务)在会话登录期间使用 CPU。来自 Citrix 管理的服务的所有身份验证都必须遍历 Citrix Cloud Connector,以便与客户管理的 Active Directory 进行通信。
  • Citrix High Availability Service 用于中转会话,从而在本地主机缓存中断模式处于活动状态时提高 CPU 使用率。此外,在 5000 个工作站 VDA 会话启动期间,CPU 使用率达到了峰值 49.7%,而在 20000 个服务器 VDA 会话启动(500 个 VDA)期间,使用率仅为 18.25%。差异是由于 VDA 的数量导致的。
  • Cloud Connector 2 没有任何有意义的指标,因为它不是选定的 High Availability Service。

切换到本地主机缓存时的 VDA 重新注册时间

在 Delivery Controller 中断期间,5000 个工作站 VDA 必须向选定的本地主机缓存中转站重新注册。本次重新注册的时间约为 10 分钟。500 个服务器 VDA 的重新注册时间约为 8 分钟。

VDA 数量 重新注册时间
5000 个工作站 VDA 大约 10 分钟
500 个服务器 VDA 大约 8 分钟

中断计时

中断事件 VDA 数量 时间
进入中断模式   10 分钟
重新注册到选定 High Availability Service 的时间 500 大约 8 分钟
  5000 大约 10 分钟
退出中断模式   10 分钟
重新注册到 Citrix Delivery Controller 的时间 500 大约 5.5 分钟
  5000 大约 1.5 分钟
  • 由于所需的 Citrix Delivery Controller 运行状况检查次数,进入(10 分钟)和退出(10 分钟)中断模式总共需要 20 分钟。重新注册 VDA 所需的时间会增加总体中断时间。
  • 如果网络反复波动,则在网络问题解决之前强制中断可以防止持续在正常模式和中断模式之间转换。

具有本地主机缓存的数据库和 High Availability Service 指标

会话启动测试 平均 High Availability Service 数据库事务/秒 High Availability Service 数据库事务峰值/秒
5000 个工作站 VDA 会话 436 1344
20000 个服务器 VDA 会话 590 2061

上表显示了选定的 High Availability Service 上每秒数据库事务的数量。

StoreFront CPU 使用率比较

会话启动测试 平均 CPU 使用率 (%) 峰值 CPU (%)
5000 个工作站 VDA 会话 4.5 32.4
5000 个服务器 VDA 会话 - 本地主机缓存中断模式 13.8 32.6
20000 个服务器 VDA 会话 11.4 22.1
20000 个服务器 VDA 会话 - 本地主机缓存中断模式 18.6 33.2
  • 上表比较了 5000 个工作站 VDA 和 20000 个服务器 VDA 会话启动测试期间本地主机缓存中断模式处于活动状态时与本地主机缓存模式处于非活动状态时的 StoreFront CPU 使用率。
  • StoreFront 计算机具有以下规格:Windows 2012 R2、8 个 vCPU(2 个插槽,每个插槽 4 个核心)、8 GB RAM
  • 本地主机缓存中断模式处于活动状态时,5000 个工作站 VDA 的平均 CPU 使用率大约增加 9%,而 20000 个服务器 VDA 会话启动测试则增加 7% 左右。增加主要是因为当本地主机缓存中断模式处于活动状态时,IIS 工作进程将处理更多请求。CPU 使用率更高,因为 StoreFront 处理会话启动的速率比中断模式处于非活动状态时更快。

StoreFront 可用内存使用率比较

会话启动测试 平均可用内存(工作集 MB) 峰值可用内存(工作集 MB)
5000 个工作站 VDA 会话 5731 6821
5000 个工作站 VDA 会话 - 本地主机缓存中断模式 5345 5420
20000 个服务器 VDA 会话 4671 4924
20000 个服务器 VDA 会话 - 本地主机缓存中断模式 4730 5027
  • 上表比较了 5000 个工作站 VDA 和 20000 个服务器 VDA 会话启动测试期间本地主机缓存中断模式处于活动状态时与本地主机缓存模式处于非活动状态时的 StoreFront 可用内存使用率。
  • 本地主机缓存模式处于活动状态时,在 5000 个工作站 VDA 会话启动测试期间内存使用率会增加 6.73%。

下表比较了在新的配置同步导入、在启用了本地主机缓存的 1000 个工作站 VDA 中启动 1000 个会话以及使用配置了 2 个 vCPU VM 的 Citrix Cloud Connector 后处于活动状态与处于非活动状态的中断模式。

会话启动比较

  本地主机缓存中断模式处于非活动状态(正常操作) 本地主机缓存中断模式处于活动状态
身份验证 359 毫秒 89 毫秒
枚举 436 毫秒 180 毫秒
总登录时间 795 毫秒 269 毫秒
检索 ICA 文件 804 毫秒 549 毫秒
  • 当 StoreFront 处于负载较轻状态时,本地主机缓存中断模式处于活动状态与本地主机缓存模式处于非活动状态时相比,登录过程有 526 毫秒的差异。
  • 本地主机缓存中断模式处于活动状态与本地主机缓存模式处于非活动状态时相比,ICA 文件的检索存在 255 毫秒的差异。差异会随着会话数量的增加而增加。

平均 CPU 使用率比较

平均 CPU 使用率比较

选定 High Availability Service 的峰值达到总体 CPU 的 95%,这表明 1000 个工作站 VDA 是 2 vCPU Cloud Connector VM 的最佳配置。

平均内存使用率比较

平均内存使用率比较

上图显示了在 1000 个工作站 VDA 会话启动期间本地主机缓存中断模式处于活动状态与处于非活动状态时 Citrix Cloud Connector 可用使用率的比较。内存没有显著差异,具体取决于本地主机缓存中断模式。

Cloud Connector CPU 使用率比较(按组件)

Cloud Connector CPU 使用率比较(按组件)

上图显示了在本地主机缓存中断模式处于非活动状态时占用最多 CPU 资源的进程。

CPU 资源

  • 上图显示了当本地主机缓存中断模式处于活动状态时占用最多 CPU 资源的进程。
  • 连接器 2 没有任何有意义的指标。

切换到本地主机缓存时的 VDA 重新注册时间

在 Delivery Controller 中断期间,1000 个工作站 VDA 必须向选定的本地主机缓存中转站重新注册。本次重新注册的时间约为 7 分钟。

具有本地主机缓存的数据库和 High Availability Service 指标

数据库和 High Availability Service 指标

上图显示了选定的 High Availability Service 上每秒数据库事务的数量。

区域数量增加对数据库导入时间的影响

测试现场添加了一个额外的区域(带有一对自己的 Cloud Connector)以了解影响。第一个区域由 5500 个独特的对象(2 个目录)组成。辅助区域是第一个区域的镜像,并有自己独特的对象,共计 11000 个对象。请务必注意,本地主机缓存建议仅用于包含不超过 10000 个对象的区域。在我们添加辅助区域之前,Cloud Connector 上的数据库导入时间约为 4 分 20 秒。添加辅助区域并用 11000 个对象填充后,导入时间增加到约 30 秒到 4 分钟 50 秒。添加更多目录对导入时间的影响不大。导致性能下降和导入时间延长的最大因素取决于分配的计算机、用户和远程 PC 的数量。此外,5500 个对象在 2 个区域之间分割,导入时间保持不变

区域数量 对象总数 导入时间
1 5500 4 分 20 秒
2 11000 4 分 50 秒
2 5500 4 分 20 秒

连接器大小指南

为了获得最佳性能,以下是启用了本地主机缓存模式时 Citrix Cloud Connector 的建议配置。

建议 1:使用带 Citrix Cloud Connector 的本地主机缓存模式支持 1000 个工作站 VDA

  • 2 个 Windows 2012 R2 VM,每个 VM 均配备 2 个 vCPU(1 个插槽、2 个核心)、4 GB RAM
  • 此建议的大小取决于本地主机缓存模式处于活动状态时 Citrix Cloud Connector 总体 CPU 使用率的峰值(总体 CPU 使用率的 95%)和 589 MB 平均可用内存

建议 2:使用带Citrix Cloud Connector 的本地主机缓存支持 5000 个工作站 VDA 或 500 个服务器 VDA

  • 2 个 Windows 2012 R2 VM,每个 VM 均配备 4 个 vCPU(1 个插槽、4 个核心)、4 GB RAM
  • 此推荐大小取决于
    • 在本地主机缓存模式处于活动状态时启动的 5000 个工作站 VDA 会话
      • 总体 91% 的 CPU 使用率峰值
      • 563 MB 平均可用内存
    • 在本地主机缓存模式处于活动状态时启动的 20000 个服务器 VDA 会话
      • 总体 90% 的 CPU 使用率峰值
      • 471 MB 平均可用内存

有关常规可扩展性大小的详细信息,请参阅“Citrix Cloud Virtual Apps and Desktops service sizing and scalability considerations”(《Citrix Cloud Virtual Apps and Desktops 服务大小和可扩展性注意事项》)。

测试环境

测试环境采用内部开发的专有测试工具,并根据以下章节中的规格配置 VM。

使用的工具

我们使用内部测试工具从被测计算机收集性能数据和指标,并推动会话启动。内部测试工具将用户会话启动调配到 Citrix Virtual Apps and Desktops 环境。测试工具还提供了一个集中的位置,用于收集响应时间数据和性能指标。实质上,测试工具管理测试并收集结果。

测试配置 - Citrix Virtual Apps and Desktops 服务

下面是 Citrix Virtual Apps and Desktops 服务测试期间使用的计算机和操作系统规范的列表。

  • Cloud Connector:
    • 2 个 Windows 2012 R2 VM,每个 VM 均配备 4 个 vCPU(1 个插槽、4 个核心)、4 GB RAM
    • 2 个 Windows 2012 R2 VM,每个 VM 均配备 2 个 vCPU(1 个插槽、2 个核心)、4 GB RAM
  • StoreFront(客户管理): Windows 2012 R2、8 个 vCPU(2 个插槽,每个插槽 4 个核心)、8 GB RAM
  • 虚拟机管理程序: Citrix XenServer 7.0 + 更新,5x HP Blade BL 460C Gen 9、2x Intel E5-2620 CPU、256 GB RAM
  • 虚拟机管理程序存储: NetApp 3250 上的 2 TB NFS 共享
  • VDA: Windows 2012 R2

数据收集

我们从每个测试中收集以下指标:平均总体 CPU、内存、组件(云进程)使用率增加。

  • 切换到选定的本地主机缓存 High Availability Service 时的 VDA 重新注册时间
  • 本地主机缓存中断模式处于活动状态时的数据库和 High Availability Service 指标
  • 会话启动比较,以下对象的平均计时:
    • 身份验证
    • 枚举
    • ICA 文件检索
  • 增加区域数量时对数据库同步时间的影响
    • 配置更改后同步所需的时间

RAM 大小注意事项

SQL Server Express LocalDB 最多可以使用 1.2 GB RAM(每个数据库缓存最多 1 GB,另加 200 MB 用于运行 SQL Server Express LocalDB)。如果中断持续较长时间,且发生了很多登录(例如,12 个小时内 10K 用户),则 High Availability Service(本地主机缓存代理)最多可以使用 1 GB 的 RAM。这些内存要求是 Cloud Connector 的正常 RAM 要求之外的要求。请考虑增加 RAM 容量的总量。

CPU 核心和套接字配置注意事项

Cloud Connector 的 CPU 配置,尤其是可用于 SQL Server Express LocalDB 的核心数,直接影响本地主机缓存性能,甚至比内存分配还要严重。仅在数据库不可访问且本地主机缓存代理处于活动状态时,在中断期间观察此 CPU 开销。

虽然 SQL Server Express LocalDB 可以使用多个核心(最多 4 个),但只能使用一个套接字。添加更多套接字不会提高性能(例如,每个有 4 个套接字和 1 个核心)。相反,Citrix 建议结合使用多个套接字和多个核心。在 Citrix 测试中,2x3(2 个套接字,3 个核心)配置提供的性能优于 4x1 和 6x1 配置。

存储注意事项

由于在中断期间用户访问资源,本地主机缓存数据库会增长。例如,在以每秒 10 次登录运行的登录/注销测试期间,数据库以每 2 到 3 分钟 1 MB 的速度增长。正常操作继续执行时,如果检测到配置变更,则将重新创建本地主机缓存数据库。本地主机缓存代理必须在安装了本地主机缓存数据库的驱动器上有足够的空间,以允许数据库在中断期间增长。在中断期间,本地主机缓存中还会发生更多 I/O 操作:大约每秒 3 MB 的写入操作,以及数十万次读取操作。

本地主机缓存的扩展和大小注意事项