机器学习决策器

编辑

自动伸缩机器学习决策器(ml)会计算运行机器学习作业和训练模型所需的内存和 CPU 要求。

机器学习决策器适用于管理 ml 节点的策略。

为了使机器学习作业在集群未适当伸缩时也能打开,请将 xpack.ml.max_lazy_ml_nodes 设置为可能的机器学习节点的最大数量(有关更多信息,请参阅高级机器学习设置)。在 Elasticsearch Service 中,此设置是自动配置的。

配置设置

编辑

num_anomaly_jobs_in_queuenum_analytics_jobs_in_queue 都旨在延迟向上伸缩事件。如果集群太小,这些设置指示每种类型的作业可以从节点取消分配的数量。只有当作业可以在当前规模下打开时,才会考虑这两个设置。如果某个作业对于任何节点大小都太大,或者如果某个作业在没有用户干预的情况下无法分配(例如,用户针对实时异常检测作业调用 _stop),则该特定作业的数字将被忽略。

num_anomaly_jobs_in_queue
(可选,整数)指定允许排队的异常检测作业数量。默认为 0
num_analytics_jobs_in_queue
(可选,整数)指定允许排队的数据帧分析作业数量。默认为 0
down_scale_delay
(可选,时间值)指定在向下伸缩之前延迟的时间。默认为 1 小时。如果整个时间窗口都有可能向下伸缩,则会请求向下伸缩。如果在该窗口期间集群需要向上伸缩,则该窗口会被重置。

示例

编辑

此示例创建了一个名为 my_autoscaling_policy 的自动伸缩策略,该策略会覆盖机器学习决策器的默认配置。

resp = client.autoscaling.put_autoscaling_policy(
    name="my_autoscaling_policy",
    policy={
        "roles": [
            "ml"
        ],
        "deciders": {
            "ml": {
                "num_anomaly_jobs_in_queue": 5,
                "num_analytics_jobs_in_queue": 3,
                "down_scale_delay": "30m"
            }
        }
    },
)
print(resp)
const response = await client.autoscaling.putAutoscalingPolicy({
  name: "my_autoscaling_policy",
  policy: {
    roles: ["ml"],
    deciders: {
      ml: {
        num_anomaly_jobs_in_queue: 5,
        num_analytics_jobs_in_queue: 3,
        down_scale_delay: "30m",
      },
    },
  },
});
console.log(response);
PUT /_autoscaling/policy/my_autoscaling_policy
{
  "roles" : [ "ml" ],
  "deciders": {
    "ml": {
      "num_anomaly_jobs_in_queue": 5,
      "num_analytics_jobs_in_queue": 3,
      "down_scale_delay": "30m"
    }
  }
}

API 返回以下结果

{
  "acknowledged": true
}