API получения статистики памяти машинного обучения
Возвращает информацию о том, как машинное обучение использует память.
Запрос
GET _ml/memory/_stats
GET _ml/memory/<node_id>/_stats
Предварительные условия
Требует привилегию кластера monitor_ml. Эта привилегия включена в встроенную роль machine_learning_user.
Описание
Получите информацию о том, как задачи машинного обучения и обученные модели используют память на каждом узле, как в куче JVM, так и в нативной памяти вне JVM.
Параметры пути
-
<node_id> - (Необязательный, строка) Имена конкретных узлов в кластере, на которые нужно нацелиться. Например,
nodeId1,nodeId2илиml: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_memoryилиml.max_open_jobs. -
ephemeral_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 - (строка) Читабельный идентификатор узла. Основан на настройке Node name setting.
-
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
}
}
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/get-ml-memory.html