本地主机缓存大小调整和扩展

概述

本文为使用本地主机缓存 (LHC) 进行的 Citrix Virtual Apps and Desktops 部署提供规模和规模建议。有关 Citrix DaaS 的大小和比例建议,请参阅 Cloud Connector 的大小和规模注意事项

LHC 允许在中断期间继续进行连接代理,从而提供高可用性。大型强子对撞机的用户必须遵守以下设计注意事项:

  • 在中断期间,每个区域只有一个代理处理 Virtual Delivery Agent (VDA) 注册和代理会话。
  • 决定哪个 Broker 处于活跃状态的选举过程不考虑 Broker 的资源。
  • 如果一个区域中的任何一个代理在正常操作期间无法处理所有登录,那么它在中断模式下将无法正常运行。
  • 停机期间没有可用的站点管理。
  • 高可用性的 SQL Server 仍然是推荐的设计。
  • 对于间歇性数据库连接情形,最好隔离 SQL Server 并将站点置于中断模式,直到修复所有基本问题。
  • 每个区域限制为 10000 个 VDA。
  • 在默认配置中,在中断模式下不支持池桌面。

体系结构

LHC 使用本地 SQL Server 数据库,该数据库在磁盘空间使用方面比连接租用更高效,但需要更多的 CPU 和内存。LHC具有同步阶段,在此阶段中,来自主站点数据库的详细信息将同步到代理(控制器)。LHC 使用仍需要 IOPS 的 SQL 数据库,并具有 SQL 优化这些写入的优势。

LHC雇用一个代理,该代理被选为代理所有连接并处理 VDA 注册。该站点中的所有 VDA 都会向该单一代理重新注册,然后该代理会面临更高的资源需求(与正常运营中的多代理站点相比),尤其是在拥有大量 VDA 的站点中。

LHC 使用 Microsoft LocalDB,它作为 sqlserver.exe 进程出现在任务管理器中。它已被配置为使用最多 1 GB 的内存来缓存数据库缓冲池。但是,由于 SQL 引擎本身和其他较小的缓存需要内存,因此该过程的发展远不止于此。通常,停机时间越长,在中断模式下访问的资源越多,LocalDB 的内存使用量就越多。但是,当站点数据库连接恢复时,sqlserver.exe 会保留该内存,而不是立即将其返回到主池。

中断模式下 CPU 插槽和内核的影响

LHC 使用名为 LocalDB 的 SQL Server 运行时版本,该版本具有特定的许可,将其限制为四个内核或单插槽中的较小者。当物理机或虚拟机配置了多个套接字且仅使用单核或双核时,这可能会对性能产生显著影响。具有四个套接字和每个插槽一个内核的代理机器将限制LocalDB使用单核,而配置为单插槽4核机器的同一台虚拟机意味着LocalDB可以访问所有四个内核(尽管与其他进程共享它们)。在中断模式下,LocalDB 运行的代理和 SQL 代码与正常运行期间相同。许多 SQL 查询可能占用 CPU 密集型,直接影响中断模式下的代理性能。有关详细信息,请参阅 Cloud Connector 的大小和规模注意事项以及 SQL Server 版本的计算容量限制

其他因素包括站点配置本身,例如:

  • 已发布应用程序的数量
  • 被代理的用户数量
  • 用户尝试启动会话的速率
  • Active Directory 性能

随着代理 CPU 总利用率接近 100%,代理响应时间增加,登录的处理时间更长,某些登录尝试可能会失败。

拥有多个 Broker 的站点

在站点中断模式下,只有一个 Broker 处理注册和登录请求。在多 Broker 站点中,将进行选举过程以提名将在中断期间处于活动状态的 Broker。但是,这个选举过程没有考虑 Broker 可用的实物资源。这意味着,在 Broker 拥有不同资源的站点中,所选 Broker 在CPU或RAM方面不一定是最强大的,这可能会导致中断模式下的性能不佳。重要的是,如果每个代理当选,都必须满足 LHC 的额外要求。

与站点数据库同步

CitrixConfigSync 服务负责将数据从站点数据库导入代理的本地副本。它监视站点数据库中的站点配置更改,并在发生更改时触发新的导入。在导入开始之前创建当前本地数据库的副本。站点中的资源(例如 VDA)数量越大,导入所需的时间就越长,但对于拥有 10,000 个 VDA 的站点来说,导入可能不到 10 分钟。

数据库位置

本地数据库存储在:

C:\Windows\ServiceProfiles\NetworkService\HaDatabaseName.mdf

为确保可靠性,CitrixConfigSync 服务会在开始新的站点数据库同步之前对先前成功的同步数据库导入进行备份。如果由于任何原因同步未成功完成,则在成功完成同步之前使用备份。不得手动复制数据库。

本地主机缓存技术规格

体系结构 规格
磁盘空间 取决于站点配置。对于 1000 个 RDS 主机 + 9500 个 VDI 和 65 K 用户,使用 75 MB。
RAM 3 GB,大约 1GB 用于 SQL Server,2 GB 用于高可用性服务和 CitrixConfigSync 服务。
是时候同步配置了 10000 个 VDA:大约 7 分钟
停机期间的激活时间 取决于 VDA 的数量和上次注册与代理的同步。在中断模式期间,只有一个代理可用于 VDA 注册,因此对于大量 VDA,可能需要几分钟才能注册所有 VDA。
是时候恢复正常运行了 如前所述,VDA 需要从二级经纪人注销并在主 Broker 处重新注册。
支持的 VDA 数量 10,000. 站点可能不止于此,但是同步站点数据库所需的时间会随着 VDA 数量的增加而增加。具有许多 VDA 的单个代理的性能可能会导致某些连接在中断期间无法中断。
停机期间的现场管理

启用或禁用本地主机缓存

可以根据需要启用或禁用 LHC。

Set-BrokerSite –LocalHostCacheEnabled $True $False

限制

必须先分配桌面,然后才能在中断模式下使用它们。未分配的桌面将不可用于代理。这可能导致桌面不可用并报告“处于维护模式”,尽管用户实际上已被分配了桌面,但所有任务都尚未同步之前发生故障。

默认配置在中断模式下不支持池化桌面。有一种解决方法,但它具有潜在的安全性和性能影响。如果您将包含池化桌面的交付组配置为在注销时不重新启动,则该组中所有已开启的池化桌面都可以在中断模式下使用。但是,用户注销后,桌面将不会处于干净状态,因为桌面未重新启动。在任何情况下,这都可能是一个安全问题。如果该桌面的下一个用户是该桌面的本地管理员,则可以访问以前用户的数据。尽管标准(非管理员)用户不太关心这种风险,但请记住,随着时间的推移,应用程序可能会出现行为不当并导致性能问题。重要:管理员必须仔细考虑在中断模式下使用未重启的池化桌面时使用此变通办法的潜在影响。

在停机期间,无法进行任何站点更改。该数据库实际上是主站点数据库的快照,每次进行新的同步时都会被丢弃。

数据库大小

对于 10000 个 VDI 配置(即 10000 个单会话 VDI 桌面),LocalDB 约为 75 MB。对于 100000 RDS 配置(即 100000 个用户),LocalDB 在 100-300 MB 之间变化,具体取决于应用程序和登录的数量。由于数据库的副本是在新导入开始之前获取的,因此为 LocalDB 留出 1 GB 的空间。

用户大小调整注意事项

虽然每个区域的最大值为 10,000 个 VDA,因为会话会增加中断期间选定代理的负载,但 Citrix 建议您也考虑每个区域的峰值会话。使用多会话 VDA 时,会话密度会发挥作用,因为可以向单个 VDA 启动多个会话。

在中断期间,建议的峰值为每个区域 25,000 个用户,如果大小合适,每分钟可以达到 1-2 千次资源启动。

应用程序启动的处理方式与桌面启动类似。同样的建议适用于两者。但是,Citrix 建议您同时考虑启动率。单个用户可以启动多个应用程序,从而增加中断期间每个用户对代理的负载。

在计算应用程序容量时,请注意每个用户启动的应用程序的平均数量,并将其保持在每个区域 25000 的相同建议范围内。

总结

在站点数据库中断期间,LHC 支持多种资源和条件,但在运行时需要规划和考虑 CPU 和内存。

在多个 Broker 站点中,任何 Broker 都可能被选为中断经纪人,因此所有 Broker 都必须有足够的资源来应对中断模式。没有对代理资源进行评估,因此,在代理拥有不同资源量的网站中,在停机期间有可能选出实力最弱的代理。

内核和插槽的布局必须被视为 Broker 设计的一部分。

已发布的应用程序和桌面的数量会影响登录响应时间和最大登录吞吐量。

CPU 资源不足的 Broker 可能会出现启动失败的情况。

Citrix 建议您定义防病毒例外情况。有关更多信息,请参阅技术论文:端点安全、防病毒和反恶意软件最佳实践

额外的 2 个内核和 2 GB 的 RAM 是测试大型强子对撞机停机模式下性能的良好起点。

1 GB 的磁盘空间足以容纳 LocalDB 数据库。

过载的代理会导致连接失败。

本地主机缓存大小调整和扩展