高级概念

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

注意

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

LHC 通过允许在中断期间继续连接代理来提供高可用性。LHC 用户应注意以下设计注意事项:

  • 在中断期间,每个区域的单个代理将处理虚拟投递代理 (VDA) 注册和代理会话。
  • 一个用于决定哪个代理将处于活动状态的选举过程,不会将代理资源纳入考量。
  • 如果区域中的任何单个代理在正常运行期间无法处理所有登录,那么它在中断模式下将无法正常工作。
  • 在中断期间无法进行站点管理。
  • 高可用性 SQL Server 仍然是推荐的设计。
  • 对于间歇性数据库连接场景,最好还是隔离 SQL Server 并将站点置于中断模式,直到所有底层问题都得到解决。
  • 每个区域的 VDA 数量限制为 10,000 个。
  • 在默认配置中,池化桌面在中断模式下无法获得支持。

体系结构

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

LHC 采用一个被选中的单个代理来代理所有连接并处理 VDA 注册。站点中的所有 VDA 都将重新注册到此单个代理,该代理随后将面临更高的资源需求(与正常运行中的多代理站点相比),尤其是在 VDA 数量庞大的站点中。

LHC 使用 Microsoft LocalDB,它在任务管理器中显示为 sqlserver.exe 进程。它已被配置为最多使用 1 GB 内存用于数据库缓冲区池缓存。然而,由于 SQL 引擎需要内存用于自身和其他较小的缓存,该进程将超出此限制。通常,中断时间越长,中断模式期间访问的资源越多,LocalDB 的内存使用量就会增加。但是,当站点数据库连接恢复时,sqlserver.exe 将保留此内存,而不会立即将其返回到主内存池。

中断模式期间 CPU 插槽和核心的影响

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

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

  • 已发布的应用程序数量
  • 正在代理的用户数量
  • 用户尝试启动会话的并发请求速率
  • 活动目录的性能

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

具有多个代理的站点

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

与站点数据库的同步过程

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

数据库位置

本地数据库存储在:

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

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

本地主机缓存的技术规格

体系结构 规格
磁盘空间 取决于站点配置。对于 1,000 个 RDS 主机 + 9,500 个 VDI(6.5 万用户),使用 75 MB。
内存 总计 3 GB 的存储空间。具体分配如下:SQL Server 大约需要 1 GB,而高可用性服务和 CitrixConfigSync 服务则共同需要 2 GB。
配置同步所需时间 10,000 个 VDA:约 7 分钟
中断期间的激活时间 取决于 VDA 数量以及与代理的上次注册同步。在中断模式下,只有一个代理可用于 VDA 注册,因此,对于大量 VDA,可能需要数分钟才能完成所有 VDA 的注册。
恢复正常操作的时间 如上所述,VDA 需要从辅助代理注销并重新注册到主代理。
支持的 VDA 数量 10,000。一个站点可以拥有更多 VDA,但同步站点数据库所需的时间会随着 VDA 数量的增加而增长。在中断期间,单个代理(broker)处理大量 VDA 可能会导致某些连接无法进行代理。
中断期间的站点管理

启用或禁用本地主机缓存

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

Set-BrokerSite –LocalHostCacheEnabled $True $False

局限性

桌面必须在中断模式下使用之前完成分配。未分配的桌面将无法用于代理。如果在所有分配同步完成之前发生中断,即使某个用户实际上已被分配了桌面,这也可能导致桌面不可用并报告“处于维护模式”。

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

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

数据库大小

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

用户规模注意事项

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

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

应用程序启动与桌面启动的处理方式类似。两者都适用相同的建议;但是,Citrix 建议您还要考虑启动速率。单个用户可能会启动多个应用程序,从而在中断期间增加每个用户对代理的影响负载。

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

摘要

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

在多个代理站点中,任何代理都可能被选为中断代理,因此所有代理都必须有足够的资源来应对中断模式。不会评估代理资源,因此,在代理资源量不同的站点中,最弱的代理有可能在中断期间被选中。

核心和套接字的布局必须作为代理设计的一部分加以考虑。

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

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

Citrix 建议您定义防病毒排除项。有关详细信息,请参阅 技术白皮书:端点安全、防病毒和反恶意软件最佳实践

额外的两个核心和 2 GB RAM 是在 LHC 中断模式下测试性能的良好起点。

1 GB 磁盘空间足以满足 LocalDB 数据库的需求。

过载的代理将导致连接无法建立。