获取机器学习内存统计 API

编辑

获取机器学习内存统计 API

编辑

返回有关机器学习如何使用内存的信息。

请求

编辑

GET _ml/memory/_stats
GET _ml/memory/<node_id>/_stats

先决条件

编辑

需要 monitor_ml 集群权限。此权限包含在 machine_learning_user 内置角色中。

描述

编辑

获取有关机器学习作业和训练模型如何在每个节点上使用内存的信息,包括 JVM 堆内和 JVM 之外的本机内存。

路径参数

编辑
<node_id>
(可选,字符串)要定位的集群中特定节点的名称。例如,nodeId1,nodeId2ml:true。有关节点选择选项,请参阅节点规范

查询参数

编辑
human
指定此查询参数可在响应中包含带有单位的字段。否则,响应中仅返回 _in_bytes 大小。
master_timeout
(可选,时间单位)等待主节点的时间。如果在超时到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 表示请求永远不会超时。
timeout
(可选,时间单位)在更新集群元数据后,等待来自集群中所有相关节点的响应的时间。如果在超时到期之前没有收到响应,则集群元数据更新仍然适用,但响应将指示它未被完全确认。默认为 30s。也可以设置为 -1 表示请求永远不会超时。

响应正文

编辑
_nodes

(对象)包含有关请求选择的节点数量的统计信息。

_nodes 的属性
failed
(整数)拒绝请求或未能响应的节点数。如果此值不为 0,则响应中会包含拒绝或失败的原因。
successful
(整数)成功响应请求的节点数。
total
(整数)请求选择的节点总数。
cluster_name
(字符串)集群的名称。基于 cluster.name 设置。
nodes

(对象)包含请求选择的节点的统计信息。

nodes 的属性
<node_id>

(对象)包含节点的统计信息。

<node_id> 的属性
attributes
(对象)列出节点属性,例如 ml.machine_memoryml.max_open_jobs 设置。
ephemeral_id
(字符串)节点的临时 ID。
jvm

(对象)包含节点的 Java 虚拟机 (JVM) 统计信息。

jvm 的属性
heap_max
字节值)堆可用的最大内存量。
heap_max_in_bytes
(整数)堆可用的最大内存量(以字节为单位)。
java_inference
字节值)当前用于缓存推理模型的 Java 堆内存量。
java_inference_in_bytes
(整数)当前用于缓存推理模型的 Java 堆内存量(以字节为单位)。
java_inference_max
字节值)用于缓存推理模型的最大 Java 堆内存量。
java_inference_max_in_bytes
(整数)用于缓存推理模型的最大 Java 堆内存量(以字节为单位)。
mem

(对象)包含有关节点内存使用情况的统计信息。

mem 的属性
adjusted_total
字节值)如果使用 es.total_memory_bytes 系统属性覆盖了物理内存量,则此属性会报告覆盖值。否则,它会报告与 total 相同的值。
adjusted_total_in_bytes
(整数)如果使用 es.total_memory_bytes 系统属性覆盖了物理内存量,则此属性会报告以字节为单位的覆盖值。否则,它会报告与 total_in_bytes 相同的值。
ml

(对象)包含有关节点上机器学习本机内存使用情况的统计信息。

ml 的属性
anomaly_detectors
字节值)为异常检测作业预留的本机内存量。
anomaly_detectors_in_bytes
(整数)为异常检测作业预留的本机内存量(以字节为单位)。
data_frame_analytics
字节值)为数据帧分析作业预留的本机内存量。
data_frame_analytics_in_bytes
(整数)为数据帧分析作业预留的本机内存量(以字节为单位)。
max
字节值)机器学习本机进程可能使用的最大本机内存量(与 JVM 堆分开)。
max_in_bytes
(整数)机器学习本机进程可能使用的最大本机内存量(以字节为单位,与 JVM 堆分开)。
native_code_overhead
字节值)为加载机器学习本机代码共享库而预留的本机内存量。
native_code_overhead_in_bytes
(整数)为加载机器学习本机代码共享库而预留的本机内存量(以字节为单位)。
native_inference
字节值)为具有 PyTorch model_type 的训练模型预留的本机内存量。
native_inference_in_bytes
(整数)为具有 PyTorch model_type 的训练模型预留的本机内存量(以字节为单位)。
total
字节值)物理内存总量。
total_in_bytes
(整数)物理内存总量(以字节为单位)。
name
(字符串)节点的人类可读标识符。基于 节点名称设置设置。
roles
(字符串数组)分配给节点的角色。请参阅 节点
transport_address
(字符串)接受传输 HTTP 连接的主机和端口。

示例

编辑
resp = client.ml.get_memory_stats(
    human=True,
)
print(resp)
response = client.ml.get_memory_stats(
  human: true
)
puts response
const response = await client.ml.getMemoryStats({
  human: "true",
});
console.log(response);
GET _ml/memory/_stats?human

这是一个可能的响应

{
  "_nodes": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "cluster_name": "my_cluster",
  "nodes": {
    "pQHNt5rXTTWNvUgOrdynKg": {
      "name": "node-0",
      "ephemeral_id": "ITZ6WGZnSqqeT_unfit2SQ",
      "transport_address": "127.0.0.1:9300",
      "attributes": {
        "ml.machine_memory": "68719476736",
        "ml.max_jvm_size": "536870912"
      },
      "roles": [
        "data",
        "data_cold",
        "data_content",
        "data_frozen",
        "data_hot",
        "data_warm",
        "ingest",
        "master",
        "ml",
        "remote_cluster_client",
        "transform"
      ],
      "mem": {
        "total": "64gb",
        "total_in_bytes": 68719476736,
        "adjusted_total": "64gb",
        "adjusted_total_in_bytes": 68719476736,
        "ml": {
          "max": "19.1gb",
          "max_in_bytes": 20615843020,
          "native_code_overhead": "0b",
          "native_code_overhead_in_bytes": 0,
          "anomaly_detectors": "0b",
          "anomaly_detectors_in_bytes": 0,
          "data_frame_analytics": "0b",
          "data_frame_analytics_in_bytes": 0,
          "native_inference": "0b",
          "native_inference_in_bytes": 0
        }
      },
      "jvm": {
        "heap_max": "512mb",
        "heap_max_in_bytes": 536870912,
        "java_inference_max": "204.7mb",
        "java_inference_max_in_bytes": 214748364,
        "java_inference": "0b",
        "java_inference_in_bytes": 0
      }
    }
  }
}