高级概念

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

注意

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

LHC 允许在中断期间继续进行连接代理,从而提供高可用性。LHC 的用户应注意以下设计注意事项:

  • 在中断期间,每个区域的单个代理将处理 Virtual Delivery Agent (VDA) 注册和代理会话。
  • 决定哪个代理将活跃的选举过程不考虑代理资源。
  • 如果一个区域中的任何一个代理在正常操作期间无法处理所有登录,那么它在中断模式下将无法正常运行。
  • 停机期间没有可用的站点管理。
  • 高可用性的 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 处理注册和登录请求。在多经纪商站点中,将进行选举过程以提名将在中断期间处于活动状态的经纪人。但是,这个选举过程没有考虑经纪人可用的实物资源。这意味着,在经纪人拥有不同数量资源的站点中,当选的经纪商不一定在CPU或RAM方面最强大,这可能会导致中断模式下的性能不佳。重要的是,如果每个代理当选,都必须满足 LHC 的额外要求。

与站点数据库同步

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

数据库位置

本地数据库存储在:

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 需要从二级代理注销注册并在主代理处重新注册。
支持的 VDA 数量 10,000. 一个站点可以有超过此值,但同步站点数据库所需的时间将随着 VDA 数量的增加而增加。具有大量 VDA 的单个 Broker 的性能可能会导致在中断期间无法代理某些连接。
停机期间的现场管理

启用或禁用本地主机缓存

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

Set-BrokerSite –LocalHostCacheEnabled $True $False

限制

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

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

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

数据库大小

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

用户大小调整注意事项

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

在中断期间,建议的峰值为每个区域 25000 个用户,如果大小适当,每分钟可以启动 1-2k 个资源。

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

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

摘要

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

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

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

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

CPU 资源不足的代理可能会遇到启动失败的情况。

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

另外两个内核和 2 GB RAM 是在 LHC 停机模式下测试性能的良好起点。

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

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

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