機械学習メモリ統計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_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接続が受け入れられるホストとポート。

Python

  1. resp = client.ml.get_memory_stats(
  2. human=True,
  3. )
  4. print(resp)

Ruby

  1. response = client.ml.get_memory_stats(
  2. human: true
  3. )
  4. puts response

Js

  1. const response = await client.ml.getMemoryStats({
  2. human: "true",
  3. });
  4. console.log(response);

コンソール

  1. GET _ml/memory/_stats?human

これは可能な応答です:

コンソール-結果

  1. {
  2. "_nodes": {
  3. "total": 1,
  4. "successful": 1,
  5. "failed": 0
  6. },
  7. "cluster_name": "my_cluster",
  8. "nodes": {
  9. "pQHNt5rXTTWNvUgOrdynKg": {
  10. "name": "node-0",
  11. "ephemeral_id": "ITZ6WGZnSqqeT_unfit2SQ",
  12. "transport_address": "127.0.0.1:9300",
  13. "attributes": {
  14. "ml.machine_memory": "68719476736",
  15. "ml.max_jvm_size": "536870912"
  16. },
  17. "roles": [
  18. "data",
  19. "data_cold",
  20. "data_content",
  21. "data_frozen",
  22. "data_hot",
  23. "data_warm",
  24. "ingest",
  25. "master",
  26. "ml",
  27. "remote_cluster_client",
  28. "transform"
  29. ],
  30. "mem": {
  31. "total": "64gb",
  32. "total_in_bytes": 68719476736,
  33. "adjusted_total": "64gb",
  34. "adjusted_total_in_bytes": 68719476736,
  35. "ml": {
  36. "max": "19.1gb",
  37. "max_in_bytes": 20615843020,
  38. "native_code_overhead": "0b",
  39. "native_code_overhead_in_bytes": 0,
  40. "anomaly_detectors": "0b",
  41. "anomaly_detectors_in_bytes": 0,
  42. "data_frame_analytics": "0b",
  43. "data_frame_analytics_in_bytes": 0,
  44. "native_inference": "0b",
  45. "native_inference_in_bytes": 0
  46. }
  47. },
  48. "jvm": {
  49. "heap_max": "512mb",
  50. "heap_max_in_bytes": 536870912,
  51. "java_inference_max": "204.7mb",
  52. "java_inference_max_in_bytes": 214748364,
  53. "java_inference": "0b",
  54. "java_inference_in_bytes": 0
  55. }
  56. }
  57. }
  58. }