Package | Description |
---|---|
com.tencentcloudapi.gse.v20191112 |
Modifier and Type | Method and Description |
---|---|
PutScalingPolicyResponse |
GseClient.PutScalingPolicy(PutScalingPolicyRequest req)
本接口(PutScalingPolicy)用于设置服务器舰队的动态扩缩容策略。
通过此接口可以增加或者更新服务器舰队的扩缩容策略。
服务器舰队可以有多个扩缩容策略,但是只有一个TargetBased基于目标的策略。
## TargetBased基于目标的策略
TargetBased策略计算的指标是PercentAvailableGameSessions,这个策略用于计算当前服务器舰队应该有多少个CVM实例来支撑和分配游戏会话。
PercentAvailableGameSessions表示服务器舰队的缓冲值;用来计算服务器舰队在当前容量下可以处理的额外玩家会话数量。
如果使用基于目标的策略,可以按照业务需求设置一个期望的缓冲区大小,GSE的会按照配置的策略来扩容和缩容到这个目标要求的CVM实例数。
例如:客户可以设置同时承载100个游戏会话的服务器舰队预留10%的缓冲区。GSE会按照这个策略执行时,若服务器舰队的可用容量低于或高于10%的游戏服务器会话时,执行扩缩容动作。
GSE按照策略期望,扩容新CVM实例或缩容未使用的实例,保持在10%左右的缓冲区。
#### 请求参数取值说明
```
Name取值策略名称,
FleetId取值为选择的服务器舰队ID,
PolicyType取值TargetBased,
MetricName取值PercentAvailableGameSessions,
TargetConfiguration取值为所需的缓冲区值对象,
其他参数不用传递。
请求成功时,将返回策略名称。扩缩容策略在成功创建立即自动生效。
```
## RuleBased基于规则的策略
#### 请求参数取值说明
```
Name取值策略名称,
FleetId取值为选择的服务器舰队ID,
PolicyType取值RuleBased,
MetricName取值(AvailableGameServerSessions,AvailableCustomCount,PercentAvailableCustomCount,ActiveInstances,IdleInstances,CurrentPlayerSessions和PercentIdleInstances)说明见备注1,
其他参数不用传递。
ComparisonOperator取值为 >,>=,<,<=这4个比较符号中的一个,
Threshold取值为指标MetricName达到的阈值是多少,
EvaluationPeriods取值为指标MetricName达到的阈值持续了多少时间,单位是分钟,
ScalingAdjustmentType取值(ChangeInCapacity,ExactCapacity,PercentChangeInCapacity)说明见备注2
ScalingAdjustment取值为指标MetricName达到的阈值的条件后,扩缩容多少个CVM实例。
请求成功时,将返回策略名称。扩缩容策略在成功创建立即自动生效。
```
规则执行的条件表达式如下所示:
```
若 [MetricName] 是 [ComparisonOperator] [Threshold] 持续 [EvaluationPeriods] 分钟, 则 [ScalingAdjustmentType] 调整 [ScalingAdjustment]个实例。
```
```
if [MetricName] ComparisonOperator [Threshold] for [EvaluationPeriods] minutes, then scaling up by/to [ScalingAdjustment]
```
例如1:如果当前AvailableCustomCount值大于等于10,持续5分钟,扩容1台CVM实例。
```
ScalingAdjustmentType = ChangeInCapacity
if [AvailableGameServerSessions] >= [10] for [5] minutes, then scaling up [1]
```
例如2:如果当前AvailableGameServerSessions值大于等于200,持续5分钟,扩容到2台CVM实例。
```
ScalingAdjustmentType = ExactCapacity
if [AvailableGameServerSessions] >= [200] for [5] minutes, then scaling to [2]
```
例如3:如果当前AvailableCustomCount值大于等于400,持续5分钟,扩容20%台CVM实例。
当前CVM实例数为10台。扩容20%台CVM实例就是增加 10*20%等于2台
```
ScalingAdjustmentType = PercentChangeInCapacity
if [AvailableGameServerSessions] >= [400] for [5] minutes, then scaling by [currentCVMCount * 20 %]
```
备注1**
- | 策略名称(MetricName) | 计算公式 | 场景 | 场景使用举例 |
| :----------------------------------------------------------- | :----------------------------------------- | :------------------------------------------ | :----------------------------------------------------------- |
| CurrentPlayerSessions
当前玩家数指标 | = 当前在线的玩家数 | CVM随着玩家会话数变化做扩缩容。 | 例如: MetricName: CurrentPlayerSessions ComparisonOperator: '<=' Threshold: 300 EvaluationPeriods: 1 ScalingAdjustment: 2 ScalingAdjustment: ChangeInCapacity 说明:若当前CurrentPlayerSessions小于等于300,持续1分钟,则扩容2台CVM。 | | AvailableGameServerSessions 可用游戏服务器会话数 | = 可用游戏服务会话数 | CVM随着可用游戏会话数变化做扩缩容。 | 例如: MetricName: AvailableGameServerSessions ComparisonOperator: '<' Threshold: 50 EvaluationPeriods: 5 ScalingAdjustment: 2 ScalingAdjustment: ExactCapacity 说明:若当前AvailableGameServerSessions小于50,持续5分钟,则扩容到2台CVM。 | | PercentAvailableGameServerSessions 可用游戏服务器会话百分比 | = 空闲游戏会话数 / 所有的游戏会话数 * 100% | CVM随着可用游戏会话数百分比变化做扩缩容。 | 例如: MetricName: PercentAvailableGameServerSessions ComparisonOperator: '<' Threshold: 50 EvaluationPeriods: 1 ScalingAdjustment: -30 ScalingAdjustment: PercentChangeInCapacity 说明:若当前PercentAvailableGameServerSessions小于50%,持续1分钟,则缩容当前实例数30%台CVM。 | | AvailableCustomCount 可用客户自定义数指标 | = 客户自定义的数 | CVM随着可用客户自定义数变化做扩缩容。 | 例如: MetricName: AvailableCustomCount ComparisonOperator: '>=' Threshold: 6 EvaluationPeriods: 3 ScalingAdjustment: -1 ScalingAdjustment: ExactCapacity 说明:若当前AvailableCustomCount大于等于6,持续3分钟,则缩容到1台CVM。 | | PercentAvailableCustomCount 可用客户自定义数百分比 | = 客户自定义数 / 客户最大自定义数* 100% | CVM随着可用客户自定义数百分比变化做扩缩容。 | 例如: MetricName: PercentAvailableCustomCount ComparisonOperator: '<' Threshold: 15 EvaluationPeriods: 3 ScalingAdjustment: 1 ScalingAdjustment: ChangeInCapacity 说明:若当前PercentAvailableCustomCount小于15%,持续3分钟,则扩容1台CVM。 | | ActiveInstances 活跃实例数指标 | = 总实例数 - 缩容中的实例数 | CVM随着活跃实例数变化做扩缩容。 | 例如: MetricName: ActiveInstances ComparisonOperator: '<' Threshold: 3 EvaluationPeriods: 1 ScalingAdjustment: 3 ScalingAdjustment: ExactCapacity 说明:若当前ActiveInstances小于3台,持续1分钟,则扩容保留到3台CVM。 | | IdleInstances 空闲实例数指标 | = 未使用的进程数 / 每实例进程数 | CVM随着空闲实例数变化做扩缩容。 | 例如: MetricName: IdleInstances ComparisonOperator: '<' Threshold: 2 EvaluationPeriods: 3 ScalingAdjustment: 1 ScalingAdjustment: ChangeInCapacity 说明:若当前IdleInstances小于2台,持续3分钟,则扩容1台CVM。 | | PercentIdleInstances 空闲实例百分比 | = IdleInstances / ActiveInstances * 100% | CVM随着空闲实例百分比变化做扩缩容。 | 例如: MetricName: PercentIdleInstances ComparisonOperator: '<' Threshold: 50 EvaluationPeriods: 3 ScalingAdjustment: 1 ScalingAdjustment: ChangeInCapacity 说明:若当前PercentIdleInstances小于50%,持续3分钟,则扩容1台CVM。 | 备注2** ChangeInCapacity** 当前CVM实例个数的扩容或缩容的调整值。正值按值扩容,负值按值缩容。 ExactCapacity** 把当前CVM实例个数调整为ScalingAdjustment设置的CVM实例数。 PercentChangeInCapacity** 按比例增加或减少的百分比。正值按比例扩容,负值按比例缩容;例如,值“-10”将按10%的比例缩容CVM实例。 |
Copyright © 2021. All rights reserved.