自动缩放™ 入门
Autoscale 是一项功能,可提供一致、高性能的电源管理解决方案,以根据配置的计划或负载需求主动扩展交付组。
Autoscale 适用于所有类型的交付组:
- 单会话静态操作系统
- 单会话随机操作系统
- 多会话随机操作系统
本文介绍了 Autoscale 的基本概念,并提供了有关如何为交付组启用和配置 Autoscale 的指导。
基本概念
在开始之前,请了解 Autoscale 中的以下基本概念:
- 容量和计算机注册
- 跨多个计算机目录进行扩展
- 计算机预配和会话需求
- 实例大小注意事项
- 计划
- 高峰和非高峰时段
- 关机延迟
- 池大小
- 容量缓冲区
- 负载指数
- 自动缩放和维护模式
- 计算机成本
- 纵向扩展交付组
- 纵向缩减交付组
- 耗尽状态
容量管理和机器注册
Autoscale 在确定容量时仅包括已向站点注册的计算机。未注册的已开机计算机无法接受会话请求。因此,它们不包含在交付组的总体容量中。
跨多个计算机目录进行扩展
在某些站点中,多个计算机目录可能与单个交付组关联。Autoscale 会随机从每个目录中启动计算机,以满足计划或会话需求。
例如,一个交付组有两个计算机目录:目录 A 有三台已开机计算机,目录 B 有一台已开机计算机。如果 Autoscale 需要启动一台额外的计算机,它可能会从目录 A 或目录 B 中启动一台计算机。
计算机预配和会话需求
与交付组关联的计算机目录必须有足够的计算机,以便在需求增加和减少时进行开机和关机。如果会话需求超过交付组中注册计算机的总数,Autoscale 会确保所有注册计算机都已开机。但是,Autoscale 不会预配额外的计算机。
注意:
如果交付组有 63 台计算机,并且为非工作时间设置了 10% 的缓冲区容量,则根据 Autoscale 的计算,在非工作时间必须开启 6.3 台计算机。为了处理小数,规则如下:
- 四舍五入到最接近的整数:例如,如果值为 6.4,则开启 6 台计算机。如果值为 6.7,则开启 7 台计算机。
- 对于任何小于 1 的非零值,四舍五入到 1。例如,如果值为 0.2 或 0.9,则开启 1 台计算机。
实例大小注意事项
如果您在公共云中适当地调整实例大小,则可以优化成本。我们建议您预配较小的实例,只要它们符合您的工作负载性能和容量要求即可。
较小的实例托管的用户会话少于较大的实例。因此,Autoscale 会更快地将计算机置于耗尽状态,因为最后一个用户会话注销所需的时间更少。结果,Autoscale 会更快地关闭较小的实例,从而降低成本。
时间表
Autoscale 根据您设置的计划开启和关闭交付组中的计算机。
计划包括每个时间段的活动计算机数量,并定义了高峰和非高峰时间。
计划设置因交付组类型而异。有关详细信息,请参阅:
高峰和非高峰时段
高峰和非高峰时段用于指示在一天中的特定时段使用哪个容量缓冲区值。您可以定义高峰时段,将剩余的未定义时间留作非高峰时段。
关机延迟
关机延迟是指计算机开机后必须经过的最短分钟数,Autoscale 才能关闭该计算机。这可以防止计算机在会话需求波动期间反复开关机。默认情况下,关机延迟为 30 分钟。您可以将其设置为 0-60 分钟的范围。
池大小
池大小是指在一天中的特定时段必须保持开机的计算机数量。
容量缓冲区
容量缓冲区用于为当前需求添加备用容量,以应对动态负载增加。需要注意以下两种情况:
- 对于多会话操作系统交付组,容量缓冲区定义为交付组总容量(以负载指数衡量)的百分比。
- 对于单会话操作系统交付组,容量缓冲区定义为交付组中计算机总数的百分比。
容量缓冲区是一个滚动缓冲区,因为它根据当前使用情况计算和应用,而不是在配置的池大小之上计算和应用。
例如,假设一个交付组有 10 台计算机,当前时段的池大小为 1 台计算机,容量缓冲区为 10%。当根据计划定义的 1 台已开机计算机的负载达到 10% 容量缓冲区不再满足的程度时,会额外开机一台计算机。如果在第二台计算机开机后负载降低,并且有足够的空闲负载容量来满足 10% 容量缓冲区,Autoscale 会准备关闭 1 台计算机。
负载指数
重要提示:
此负载指数仅适用于多会话交付组。
负载指数指标决定了机器接收用户登录请求的可能性。它是使用为并发登录、会话、CPU、磁盘和内存使用情况配置的 Citrix 负载管理策略 设置计算的。
负载指数范围为 0 到 10,000。默认情况下,当机器托管 250 个会话时,它被视为满载:
-
数字“0”表示未加载的机器。负载指数值为 0 的机器处于基线负载。
-
数字“10,000”表示已满载的机器,无法再运行任何会话。
自动缩放和维护模式
处于维护模式的机器,无论其可用性状态如何,都被视为整体池大小计算的一部分。因此,池中的所有机器都可能处于维护模式。但是,这些机器被排除在容量缓冲区计算之外,以确保它们的即时可用性。为了保证特定百分比的机器可供用户连接,请相应地调整池大小和缓冲区值。
计算机成本
每小时计算机实例成本是所用计算容量的每小时成本(美元)。此设置用于计算自动缩放设置的成本节省。要查看节省情况,请转到 监视 > 趋势 > 计算机使用情况。
纵向扩展交付组
当满足以下条件时,自动缩放会在启用了自动缩放的交付组中启动其他计算机:
- 交付组的自动缩放计划表明,在当前时间段内,必须启动更多的计算机。
- 交付组上的当前负载已超出容量缓冲区。
启动计算机的条件:
- 未处于维护模式。
- 管理程序未处于维护模式。
- 已关机且未注册。
- 属于需要进行纵向扩展的交付组
- 没有待处理的电源操作。
缩减交付组的规模
Autoscale 在以下情况下关闭启用了 Autoscale 的交付组中的计算机:
- Autoscale 计划指定必须关闭计算机以满足当前时间段的配置计算机数量。
- 交付组的当前负载已降低,导致开机计算机数量超出满足池大小和容量缓冲区所需的数量。
Autoscale 通过关闭超出满足池大小和容量缓冲区所需数量的冗余计算机来缩减交付组。
缩减过程包括两个步骤:
- 将所需数量的计算机置于耗尽状态。
- 选择所有已耗尽的计算机进行关机。
符合关机条件的计算机必须满足以下条件:
- 未处于维护模式
- 管理程序未处于维护模式
- 当前已开机
- 已注册为可用,或在启动后正在等待注册
- 已排空且没有活动会话
- 没有待处理的电源操作
- 满足关机延迟条件
排空状态
Autoscale 尝试将交付组中已开机的计算机数量缩减到配置的池大小和容量缓冲区。
为实现此目标,Autoscale 会将会话最少的冗余计算机置于“排空状态”,并在所有会话注销后将其关闭。当会话需求减少且计划所需的计算机少于已开机的计算机时,就会出现此行为。
计算机排空的条件如下:
- 已开机
- 未处于维护模式
- 管理程序未处于维护模式
- 属于需要进行规模缩减的交付组
- 当前活动会话数量最少
注意:
- 已开机时长至少达到关机延迟所指定时间的计算机,优先进行排空。
- 处于耗尽状态的计算机不再托管新的会话启动,并等待现有会话注销。只有当所有会话都注销后,计算机才会关闭。但是,如果没有立即可用于会话启动的计算机,Autoscale 宁愿将会话启动定向到处于耗尽状态的计算机,而不是启动一台计算机。
Autoscale 逐一将多余的计算机置于“耗尽状态”:
-
如果两台或更多计算机具有相同数量的活动会话,Autoscale 会耗尽已通电达到指定关机延迟的计算机。
这样做可以避免将最近启动的计算机置于耗尽状态,因为这些计算机最有可能拥有最少的会话。
-
如果两台或更多计算机已通电达到指定的关机延迟,Autoscale 会随机逐一耗尽这些计算机。
处于耗尽状态的计算机不再托管新的会话启动,并等待现有会话注销。只有当所有会话都注销后,计算机才会成为关机候选。但是,如果没有立即可用于会话启动的计算机,Autoscale 宁愿将会话启动定向到处于耗尽状态的计算机,而不是启动一台计算机。
当满足以下任一条件时,计算机将退出耗尽状态:
- 计算机已关机。
- 计算机所属的交付组已禁用 Autoscale。
- Autoscale 使用计算机来满足计划或负载需求。当计划(基于计划的扩展)或当前需求(基于负载的扩展)所需的计算机数量多于当前已启动的计算机数量时,就会出现这种情况。
重要提示:
如果没有立即可用于会话启动的计算机,Autoscale 宁愿将会话启动定向到处于耗尽状态的计算机,而不是启动一台计算机。托管会话启动的处于耗尽状态的计算机仍将保持耗尽状态。
要查找哪些计算机处于耗尽状态,请使用 Get-BrokerMachine PowerShell 命令。例如:Get-BrokerMachine -DrainingUntilShutdown $true。或者,您可以使用 Studio。请参阅显示处于耗尽状态的计算机。
显示处于耗尽状态的计算机
注意:
此功能仅适用于多会话计算机。
在 Studio 中,您可以显示处于耗尽状态的计算机,从而了解哪些计算机即将关闭。请完成以下步骤:
- 导航到 搜索 节点,然后单击 要显示的列。
- 在 要显示的列 窗口中,选中 耗尽状态 旁边的复选框。
- 单击 保存 以退出 要显示的列 窗口。
耗尽状态 列可以显示以下信息:
- 耗尽直到关机。 当计算机处于耗尽状态直到关机时显示。
- 未耗尽。 当计算机尚未处于耗尽状态时显示。

为交付组启用 Autoscale
创建交付组时,Autoscale 默认处于禁用状态。要使用 Web Studio 为交付组启用和配置 Autoscale,请按照以下步骤操作:
您还可以使用 PowerShell 命令为交付组启用和配置 Autoscale。有关详细信息,请参阅 Broker PowerShell SDK 命令。
-
在左侧窗格中选择 交付组。
-
选择要管理的交付组,然后单击 管理 Autoscale。

-
在管理 Autoscale 页面上,选中启用 Autoscale 复选框以启用 Autoscale。启用 Autoscale 后,页面上的选项将变为可用。

-
为了根据您组织的具体需求调整默认设置,请完成以下配置:
-
要对交付组中的部分计算机进行电源管理,请使用自动缩放标记的计算机
要禁用 Autoscale,请清除 Autoscale 复选框。页面上的选项将变为灰色,表示所选交付组的 Autoscale 已禁用。
重要提示:
- 如果禁用 Autoscale,所有由 Autoscale 管理的计算机将保持禁用时的状态。
- 禁用 Autoscale 后,处于耗尽状态的计算机将退出耗尽状态。有关耗尽状态的更多信息,请参阅耗尽状态。
- “基于负载的设置”页面上针对单会话操作系统静态交付组和单会话操作系统随机交付组的“电源策略”操作独立于 Autoscale 设置(启用或禁用)。
从自动缩放计算中排除耗尽状态的计算机
此功能允许您防止因重启计划而处于耗尽状态的计算机计入 Autoscale 容量目标。通过排除这些计算机,您可以优化资源调配并避免过度调配。 例如:您有一个配置了 Autoscale 和定期重启计划的多会话操作系统计算机交付组。当计算机进入耗尽状态以进行重启时,Autoscale 通常仍将其计为可用容量。这可能会不必要地触发额外计算机的调配。通过启用此功能,您可以指示 Autoscale 在计算容量时忽略这些处于耗尽状态的计算机。这可确保只有活动可用的计算机才计入目标,从而提高资源利用效率并降低运营成本。
适用性: 此功能适用于包含多会话操作系统计算机 (RDS) 的交付组。 限制:
- 此功能不适用于单会话操作系统计算机。
- 当您根据“计算机数量”(而非“百分比”)配置 Autoscale 时,系统不会将处于耗尽状态的计算机排除在 Autoscale 计算之外。
重要注意事项:
- 属性
ExcludeNaturalRebootDrainingFromAutoscale在交付组中配置。 - 属性
ExcludeNaturalRebootDrainingFromAutoscale的默认值为False。这意味着默认情况下,处于耗尽状态的计算机包含在 Autoscale 计算中。
先决条件:
- 您必须配置多会话操作系统交付组。
- 您必须为目标交付组启用并配置 Autoscale。最好使用“计算机百分比”进行缩放。
- 您必须为交付组配置重新启动计划,以使计算机进入耗尽状态。 如何配置:
您可以使用 PowerShell 命令在交付组级别配置此功能。
-
确保功能切换
ExcludeNaturalRebootDrainingFromAutoscale已启用。您可以通过在 PowerShell 中运行Get-ConfigEnabledFeature并在输出列表中检查该切换来验证这一点。注意:
如果此切换已禁用,则无法修改交付组属性。
- 将交付组属性设置为排除耗尽状态的计算机**。
- 以管理员权限打开 PowerShell。
- 识别您的多会话操作系统交付组。
-
使用
Set-BrokerDesktopGroupcmdlet 将ExcludeNaturalRebootDrainingFromAutoscale属性设置为$True,用于您的交付组:Set-BrokerDesktopGroup -Name "<YourDeliveryGroupName>" -ExcludeNaturalRebootDrainingFromAutoscale $True <!--NeedCopy-->将
<YourDeliveryGroupName>替换为您的交付组的实际名称。 -
通过运行以下命令验证属性是否设置为
True:Get-BrokerDesktopGroup -Name "<YourDeliveryGroupName>" | Select Name, ExcludeNaturalRebootDrainingFromAutoscale <!--NeedCopy-->输出应显示
ExcludeNaturalRebootDrainingFromAutoscale : True。
-
配置 Autoscale 和重新启动计划(如果尚未配置)** 确保您的交付组已启用 Autoscale 并配置了重新启动计划,以使计算机进入排空状态。
- 在 Citrix Studio 中,编辑您的交付组。
- 转到管理 Autoscale 并配置高峰/非高峰计划,确保 Autoscale 已启用。如果您打算排除排空中的计算机,请根据“计算机百分比”设置您的计划。
- 转到重新启动计划并创建或编辑一个使计算机进入排空状态的计划(例如,对于云部署使用“平稳重新启动”,对于本地部署使用“排空会话后重新启动所有计算机”)。
监视和故障排除: 问题: 即使您启用了该功能,会话有时也会启动到排空中的计算机上。 原因: 这是预期行为。如果其他合适的非排空计算机不可用,处于排空状态的计算机仍可作为“最后手段”用于会话启动。此功能主要影响 Autoscale 的预配/取消预配计算。它不影响代理的会话启动逻辑本身。 解决方案: 这不是问题,而是预期设计。为了最大程度地减少会话进入排空中的计算机,请确保您的 Autoscale 缓冲区和容量足以保持足够的非排空计算机可用以满足需求。
具有用户会话的 VM 的 Autoscale 选项
Autoscale 可以管理分配的和池化的计算机,优化它们的电源和可用性。以下内容提供了 PowerShell 命令和 UI 设置,用于根据高峰和非高峰时间以及分配的和池化的计算机的用户会话来控制计算机电源状态。
分配的计算机专用于单个用户,而池化的计算机则在多个用户之间共享。
注意:
- Citrix Studio 中的会话限制策略,特别是断开连接会话计时器和会话空闲计时器,对于管理用户会话至关重要,即使未启用 Citrix Autoscale 也是如此。这些策略定义了会话在终止之前可以保持断开连接或空闲状态的时间,从而确保资源利用率并防止会话被锁定。此策略设置可用于分配的和池化的计算机,特别是运行多会话 VDA 的计算机。有关详细信息,请参阅会话限制策略设置。
Get-BrokerMachinePowerShell 命令已弃用。请使用Get-BrokerMachineV2作为替代。
对于分配的计算机
-
要在高峰期开始时自动启动静态交付组中分配的单会话计算机,请使用 PowerShell 命令:
Set-BrokerDesktopGroup "Desktop Group Name" -AutomaticPowerOnForAssigned $True <!--NeedCopy--> -
为确保在高峰期发现的任何已分配计算机已关闭时重新启动,请同时启用
AutomaticPowerOnForAssignedDuringPeak。Set-BrokerDesktopGroup "Desktop Group Name" -AutomaticPowerOnForAssigned $True -AutomaticPowerOnForAssignedDuringPeak $True <!--NeedCopy--> -
如果您希望虚拟机仅在用户启动会话时才开启,请执行以下任一操作:
- 将
AutomaticPowerOnForAssigned和AutomaticPowerOnForAssignedDuringPeak设置为False。 -
使用 UI 界面将所有时间定义为非高峰时段,完全没有高峰时段。请参阅 基于计划的设置。在非高峰时段,如果 Autoscale 管理的已分配计算机上没有用户会话,则该计算机将关闭。

- 将
-
如果所有计算机都在高峰时段由 Autoscale 开启,请使用 UI 界面设置等待时间(以分钟为单位)以及操作,例如,如果 Autoscale 开启计算机后没有用户登录,则不执行任何操作、暂停或关机。请参阅 电源策略。
对于池化计算机
要在会话注销后自动关闭池化计算机,请将交付组的 PowerShell 命令 ShutdownAfterUse 设置为 True。例如:
Set-BrokerDesktopGroup -Name “DesktopGroupName” -ShutdownDesktopsAfterUse $true
<!--NeedCopy-->
监视指标
为交付组启用 Autoscale 后,您可以从 Director 监视 Autoscale 管理的计算机的以下指标。
-
计算机使用情况
-
预计可节省的费用
-
针对计算机和会话的警报通知
-
计算机状态
-
负载评估趋势
注意:
首次为交付组启用 Autoscale 时,可能需要几分钟才能显示该交付组的监视数据。 如果为交付组启用然后禁用 Autoscale,监视数据仍可用。Autoscale 以 5 分钟为间隔收集监视数据。
有关指标的更多信息,请参阅监视 Autoscale 管理的计算机。
休眠虚拟机上的自动缩放
您可以通过 Autoscale 可配置设置使 VM 休眠。使用 PowerShell 命令 Get-BrokerDesktopGroups、New-BrokerDesktopGroups 或 Set-BrokerDesktopGroups 将以下正值设置为参数 AutoscaleScaleDownActionDuringPeak(高峰期)或 AutoscaleScaleDownActionDuringOffPeak(非高峰期),以定义电源操作:
- 0:缩减时关闭 VM
- 1:缩减时挂起(休眠 VM)
无法休眠的 VM 将被关闭。
如果交付组启用了休眠功能,则可以为休眠的 VM 配置重新启动计划。在重新启动周期中,VM 将恢复,然后关闭。重新启动计划可以设置为每周、每天、每月和一次。您可以配置多个计划。但是,从休眠状态恢复的 VM 可能需要几分钟。
Autoscale 还可以在高峰期启动处于休眠状态的多会话远程桌面服务 (RDS) 和没有会话的共享单会话 VM。这些 VM 可以是 MCS 和非 MCS 计算机目录中的 VM。
更多信息
有关自动缩放的更多信息,请参阅 Tech Zone 中的 Citrix 自动缩放。