Deep Learning Containers (DLC) は、詳細なメトリクスを提供することで、ジョブのリソース使用量を監視できます。アラート機能を使用すると、DLC ジョブのリソース使用量をリアルタイムで監視し、アラートルールと通知を設定できます。GPU 使用率などのメトリクスが指定されたしきい値を超えると、サービスはアラート通知を送信します。このトピックでは、CloudMonitor および Application Real-Time Monitoring Service (ARMS) を使用して、モニタリングデータを表示し、アラートルールと通知を設定し、メトリクスをサブスクライブする方法について説明します。
前提条件
DLC トレーニングジョブのモニタリングとアラームを設定するには、1 つ以上の DLC トレーニングジョブを作成する必要があります。詳細については、「トレーニングジョブの作成」をご参照ください。
制限事項
汎用コンピューティングリソースを使用する従量課金制のトレーニングジョブでは、モニタリングは利用できません。
アカウントと権限
-
Alibaba Cloud アカウント (root ユーザー):追加の権限付与なしにすべての操作を実行できます。
-
RAM ユーザー:
-
ワークスペース内の DLC ジョブのモニタリングデータを表示するには、RAM ユーザーに次の権限が必要です:
-
RAM ユーザーをワークスペースのメンバーとして追加し、管理者、アルゴリズム開発者、またはアルゴリズム O&M エンジニアのロールを割り当てます。詳細については、「ワークスペースメンバーの管理」をご参照ください。
-
RAM ユーザーに CloudMonitor への読み取り専用アクセス権 (
AliyunCloudMonitorReadOnlyAccess) を付与します。詳細については、「RAM ユーザー権限の管理」をご参照ください。
-
-
ワークスペース内の DLC ジョブのモニタリングデータを表示し、モニタリングアラートを設定するには、RAM ユーザーに次の権限が必要です:
-
RAM ユーザーをワークスペースのメンバーとして追加し、管理者、アルゴリズム開発者、またはアルゴリズム O&M エンジニアのロールを割り当てます。詳細については、「ワークスペースメンバーの管理」をご参照ください。
-
RAM ユーザーに CloudMonitor への管理アクセス権 (
AliyunCloudMonitorFullAccess) を付与します。詳細については、「RAM ユーザー権限の管理」をご参照ください。
-
-
監視メトリクス
監視メトリクスには、GPU、CPU、メモリ、ディスク、ネットワーク、RDMA、CPFS が含まれます。サポートされているディメンションは、ジョブ、Pod (ワーカー)、および個別の GPU カードです。次の表は、典型的なヘルスメトリクスの一覧です。メトリクスの完全なリストとその詳細な説明については、「Deep Learning Containers (DLC) のメトリクス」をご参照ください。
ジョブ
|
メトリック |
説明 |
|
CPU 使用率 (ジョブディメンション) |
ジョブが使用する合計 CPU リソースの割合。 |
|
メモリ使用率 (ジョブディメンション) |
ジョブが使用する合計メモリリソースの割合。 |
|
ディスク読み取りデータレート (ジョブディメンション) |
ジョブのディスクからのデータ読み取りレート (MiB/s)。 |
|
ディスク書き込みデータレート (ジョブディメンション) |
ジョブのディスクへのデータ書き込みレート (MiB/s)。 |
|
ネットワーク受信データレート (ジョブディメンション) |
ジョブがデータを受信するレート (MiB/s)。 |
|
ネットワーク送信データレート (ジョブディメンション) |
ジョブがデータを送信するレート (MiB/s)。 |
|
GPU コンピュート使用率 (ジョブディメンション) |
ジョブが使用する合計 GPU コンピュートリソースの割合。 |
|
GPU メモリ使用率 (ジョブディメンション) |
ジョブが使用する合計 GPU メモリの割合。 |
|
GPU SM 使用率 (ジョブディメンション) |
ジョブが使用する合計 GPU ストリーミングマルチプロセッサ (SM) リソースの割合。 |
|
GPU 消費電力 (ジョブディメンション) |
ジョブの GPU 消費電力 (ワット)。 |
|
GPU 温度 (ジョブディメンション) |
ジョブの GPU 温度 (摂氏)。 |
|
GPU 全体ヘルス (ジョブディメンション) |
ジョブ内の GPU の全体的なヘルス状態。値が 100% の場合は、すべての GPU が正常であることを示します。値が 100% 未満の場合は、1 つ以上の GPU が異常であることを示します。 |
|
RDMA 受信データレート (ジョブディメンション) |
ジョブの RDMA 受信データレート (MiB/s)。 |
|
RDMA 送信データレート (ジョブディメンション) |
ジョブの RDMA 送信データレート (MiB/s)。 |
|
CPFS 書き込みデータレート (ジョブディメンション) |
ジョブの CPFS へのデータ書き込みレート (MiB/s)。 |
|
CPFS 読み取りデータレート (ジョブディメンション) |
ジョブの CPFS からのデータ読み取りレート (MiB/s)。 |
|
NVLink 受信データ量 (ジョブディメンション) |
ジョブ内の GPU が NVLink 経由で受信したデータ量。 |
|
NVLink 送信データ量 (ジョブディメンション) |
ジョブ内の GPU が NVLink 経由で送信したデータ量。 |
|
PCIe 受信データ量 (ジョブディメンション) |
ジョブ内の GPU が PCIe 経由で受信したデータ量。 |
|
PCIe 送信データ量 (ジョブディメンション) |
ジョブ内の GPU が PCIe 経由で送信したデータ量。 |
|
その他のメトリクスについては、「Deep Learning Containers (DLC) のメトリクス」をご参照ください。 |
|
Pod (ワーカー)
|
メトリック |
説明 |
|
CPU 使用率 (Pod ディメンション) |
Pod が使用する合計 CPU リソースの割合。 |
|
メモリ使用率 (Pod ディメンション) |
Pod が使用する合計メモリリソースの割合。 |
|
ディスク読み取りデータレート (Pod ディメンション) |
Pod のディスクからのデータ読み取りレート (MiB/s)。 |
|
ディスク書き込みデータレート (Pod ディメンション) |
Pod のディスクへのデータ書き込みレート (MiB/s)。 |
|
ネットワーク受信データレート (Pod ディメンション) |
Pod がデータを受信するレート (MiB/s)。 |
|
ネットワーク送信データレート (Pod ディメンション) |
Pod がデータを送信するレート (MiB/s)。 |
|
GPU コンピュート使用率 (Pod ディメンション) |
Pod が使用する合計 GPU コンピュートリソースの割合。 |
|
GPU メモリ使用率 (Pod ディメンション) |
Pod が使用する合計 GPU メモリの割合。 |
|
GPU SM 使用率 (Pod ディメンション) |
Pod が使用する合計 GPU ストリーミングマルチプロセッサ (SM) リソースの割合。 |
|
GPU 消費電力 (Pod ディメンション) |
Pod の GPU 消費電力 (ワット)。 |
|
GPU 温度 (Pod ディメンション) |
Pod の GPU 温度 (摂氏)。 |
|
GPU 全体ヘルス (Pod ディメンション) |
Pod 内の GPU の全体的なヘルス状態。値が 100% の場合は、すべての GPU が正常であることを示します。値が 100% 未満の場合は、1 つ以上の GPU が異常であることを示します。 |
|
RDMA 受信データレート (Pod ディメンション) |
Pod の RDMA 受信データレート (MiB/s)。 |
|
RDMA 送信データレート (Pod ディメンション) |
Pod の RDMA 送信データレート (MiB/s)。 |
|
CPFS 読み取りデータレート (Pod ディメンション) |
Pod の CPFS からのデータ読み取りレート (MiB/s)。 |
|
CPFS 書き込みデータレート (Pod ディメンション) |
Pod の CPFS へのデータ書き込みレート (MiB/s)。 |
|
NVLink 受信データ量 (Pod ディメンション) |
Pod 内の GPU が NVLink 経由で受信したデータ量。 |
|
NVLink 送信データ量 (Pod ディメンション) |
Pod 内の GPU が NVLink 経由で送信したデータ量。 |
|
PCIe 受信データ量 (Pod ディメンション) |
Pod 内の GPU が PCIe 経由で受信したデータ量。 |
|
PCIe 送信データ量 (Pod ディメンション) |
Pod 内の GPU が PCIe 経由で送信したデータ量。 |
|
その他のメトリクスについては、「Deep Learning Containers (DLC) のメトリクス」をご参照ください。 |
|
GPU カード
|
メトリック |
説明 |
|
GPU メモリインターフェイス使用率 (カードディメンション) |
個別の GPU カードで使用される GPU メモリインターフェイス容量の割合。 |
|
GPU SM 使用率 (カードディメンション) |
個別の GPU カードで使用される GPU SM 容量の割合。 |
|
GPU 消費電力 (カードディメンション) |
個別の GPU カードの消費電力 (ワット)。 |
|
GPU 温度 (カードディメンション) |
個別の GPU カードの温度 (摂氏)。 |
|
GPU 全体ヘルス (カードディメンション) |
個別の GPU カードの全体的なヘルス状態。値が 100% の場合は、カードが正常であることを示します。値が 100% 未満の場合は、カードが異常であることを示します。 |
|
その他のメトリクスについては、「Deep Learning Containers (DLC) のメトリクス」をご参照ください。 |
|
モニタリングチャート
-
DLC ジョブ詳細ページで、Monitoring タブに切り替えて、ジョブのモニタリングデータを表示します。(注:ジョブのモニタリングデータは最大 30 日間保持されます。)
[モニタリング] タブには、[ジョブディメンション]、[インスタンスディメンション]、[GPU ディメンション] の 3 つのサブタブがあります。これらのサブタブには、GPU、CPU、メモリ、ネットワーク、ディスク、OSS のメトリクスが表示されます。
-
メトリクスは Job Level、Instance Dimension、GPU Level で監視でき、GPU、CPU、メモリ、ネットワーク、ディスク、OSS をカバーします。
-
More をクリックして表示するメトリクスを選択します。その後、メトリクスをドラッグして順序を変更し、比較のために主要なデータを優先表示できます。
ダイアログボックスには、[メトリクス選択] と [メトリクスソート] の 2 つのセクションがあります。GPU グループでは、GPU 使用率、GPU メモリ使用率、合計 GPU メモリ、使用済み GPU メモリなどのメトリクスが利用可能です。CPU グループでは、CPU 使用率などのメトリクスを選択できます。選択後、[OK] をクリックします。
-
モニタリングチャートでは、範囲ズーム (ズームイン)、ズームを元に戻す (前のズームに戻す)、リセット (初期ビューに戻す)、ダウンロードを使用できます。

-
チャート同期:この機能を有効にすると、すべてのチャートでズーム操作が同期され、複数のビューの比較が容易になります。
右側のレイアウトドロップダウンリストをクリックし、[1 行に 1 つ]、[1 行に 2 つ]、または [1 行に 3 つ] を選択します。
-
1 行に表示されるチャートの数をカスタマイズできます。
CloudMonitor の使用
CloudMonitor は Alibaba Cloud のリソースとインターネットアプリケーションを監視します。CloudMonitor コンソールを使用して、PAI-Deep Learning Containers (DLC) ジョブのモニタリングデータを表示し、アラート通知を設定できます。CloudMonitor は、独自のモニタリングシステムやダッシュボードを構築するためにメトリックデータをサブスクライブできる API も提供しています。詳細については、「CloudMonitor とは」をご参照ください。
課金
CloudMonitor サービスの使用には料金が発生します。詳細な請求情報については、「CloudMonitor の課金」をご参照ください。
モニタリングデータの表示
-
CloudMonitor コンソールにログインします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
[クラウドサービスモニタリングダッシュボード] ページで、[PAI-Deep Learning Containers (DLC)] を選択し、検索ボックスで [ワークスペース ID] を選択または検索して、対応するモニタリングチャートを表示します。ワークスペース ID を確認するには、「ワークスペースの管理」をご参照ください。
モニタリングチャートエリアには、[ジョブディメンション] タブに 3 つの GPU メトリックパネルが表示されます:[GPU メモリインターフェイス使用率 (ジョブディメンション) (%)]、[GPU コンピュート使用率 (ジョブディメンション) (%)]、[GPU SM 使用率 (ジョブディメンション) (%)]。これらのメトリクスの報告期間は 10 秒です。
モニタリングチャートでは、次の操作が可能です:
-
監視ディメンションの切り替え:ジョブ、Pod (ワーカー)、または GPU ディメンション別にメトリクスを表示します。
-
[ジョブディメンション] タブをクリックします。DLC ジョブ ID を選択または入力して、単一ジョブのモニタリングデータを表示します。
-
[Pod ディメンション] タブをクリックします。Pod ID を選択または入力して、単一 Pod のモニタリングデータを表示します。
-
GPU Level タブをクリックします。Pod ID を選択または入力して、指定された DLC ジョブ内の単一 Pod の GPU ディメンションのモニタリングデータを表示します。
-
-
時間範囲の変更:[1 時間]、[3 時間]、[6 時間]、[12 時間]、[1 日]、[3 日]、[7 日]、[14 日]、または [カスタム] の期間を選択できます。
-
ズームイン:各チャートの右上隅にあるズームインアイコン
をクリックして、詳細なモニタリングデータを表示します。
-
アラートの設定
アラートルールを設定して、PAI-Deep Learning Containers (DLC) ジョブのリソースレベルを監視できます。リソースメトリクスがルールに違反した場合、システムはアラート通知を送信します。このセクションでは、CloudMonitor コンソールと API を使用してアラートを設定する方法について説明します。
アラート連絡先の設定
-
CloudMonitor コンソールにログインします。
-
左側のナビゲーションウィンドウで、 を選択します。
[アラート連絡先] タブで、[連絡先の作成] をクリックし、連絡先の名前、電話番号、メールアドレス、または Webhook URL を入力して、[確認] をクリックします。
[アラート連絡先グループ] タブで、[連絡先グループの作成] をクリックし、グループ名を入力して、既存のアラート連絡先をグループに追加し、[確認] をクリックします。
アラートルールの設定
-
CloudMonitor コンソールの左側のナビゲーションウィンドウで、[クラウドリソースモニタリング] > [クラウドサービスモニタリング] を選択します。
-
[クラウドサービスモニタリング] ページで、[PAI-Deep Learning Containers (DLC)] を開きます。検索ボックスに [PAI-Deep Learning Containers (DLC)] と入力します。検索結果の [メトリックモニタリング] カテゴリで、[PAI-Deep Learning Containers (DLC)] をクリックします。
-
[PAI-Deep Learning Containers (DLC)] ページで、サービスリージョンを選択し、[アラートルールの作成] をクリックします。
-
[アラートルールの作成] パネルで、次のパラメーターを設定し、[確認] をクリックします。
パラメーター
説明
プロダクト
監視するプロダクト。[PAI-Deep Learning Containers (DLC)] を選択します。
リソース範囲
アラートルールの範囲。オプション:[すべてのリソース] と [インスタンス]。
-
すべてのリソース:いずれかの DLC リソースがアラートルールに一致した場合にアラート通知が送信されます。
-
インスタンス:[リソースの関連付け] セクションで、関連付けるワークスペースを追加する必要があります。追加されたワークスペース内の DLC ジョブがアラートルールに一致した場合にのみ、アラート通知が送信されます。
ルール説明
アラートをトリガーする条件。モニタリングデータがこれらの条件に一致すると、アラートがトリガーされます。ルール説明の設定方法の詳細については、「アラートルールの作成」をご参照ください。
ミュート期間
未解決のアラートの再送信間隔。
有効期間
アラートルールがアクティブな期間。CloudMonitor はこの期間中にのみアラートをチェックします。
タグ
アラートルールのカスタムタグをキーと値のペアとして指定します。
アラート連絡先グループ
アラート通知を受信する連絡先グループ。アラート連絡先が設定されたグループを選択します。
-
-
[PAI-Deep Learning Containers (DLC)] ページで、[アラートルールの表示] をクリックして、アラートルールの詳細と履歴を表示します。ルールを変更することもできます。
API オペレーションを呼び出すことでも、アラートサービスを設定できます。これらのオペレーションにより、アラート履歴の表示、アラートテンプレートの管理、アラートルールの設定、アラート連絡先の管理が可能です。詳細については、「CloudMonitor API リファレンス:アラートサービス」をご参照ください。
監視メトリクスのサブスクライブ
CloudMonitor は、DLC の監視メトリクスとデータをサブスクライブするために使用できる包括的な API オペレーションセットを提供します。これにより、独自のモニタリングシステムやダッシュボードを構築できます。詳細な手順については、「クラウドサービスモニタリング API ディレクトリ」をご参照ください。
|
API |
説明 |
|
指定されたメトリクスの最新のモニタリングデータをクエリします。 |
|
|
指定されたクラウドサービスの指定されたメトリクスのモニタリングデータをクエリします。 |
|
|
指定されたクラウドサービスのメトリクスのモニタリングデータをクエリします。 |
|
|
利用可能なメトリクスとそのメタデータを一覧表示します。 |
|
|
時系列メトリクスを提供するクラウドサービスを一覧表示します。 |
|
|
指定されたクラウドサービスの指定されたメトリクスの最新のモニタリングデータをクエリし、その後、ソートされたモニタリングデータをクエリします。 |
次の例では、DescribeMetricList API オペレーションを呼び出して、PAI-Deep Learning Containers (DLC) の指定されたメトリクスのモニタリングデータをクエリする方法を示します。
-
メトリクスリストページで、
JOB_GPU_ACCELERATOR_DUTTY_UTILなどのターゲットメトリクスを見つけ、[操作] 列の [メトリックデータの取得] をクリックして OpenAPI ポータルページに移動します。 -
OpenAPI ポータルページで、次の主要なパラメーターを設定し、その他はデフォルト値のままにします。パラメーターの詳細については、「DescribeMetricList」をご参照ください。
パラメーター
説明
Namespace
このパラメーターを
acs_pai_dlcに設定します。MetricName
クエリするメトリック。例:
CARD_GPU_DRAM_ACTIVE_UTIL。StartTime
開始時刻。例:
2024-05-15 00:00:00。EndTime
終了時刻。例:
2024-05-28 00:00:00。説明StartTimeとEndTimeの間隔は 31 日以下である必要があります。 -
パラメーターを設定した後、[呼び出し開始] をクリックして、指定した時間範囲のモニタリングデータを表示します。呼び出しが成功すると、ステータスコード 200 が返されます。レスポンスボディの
Datapoints配列には、timestamp、jobId、regionId、userId、workspaceId、Valueなどのデータフィールドが含まれます。
ARMS の使用
Application Real-Time Monitoring Service (ARMS) は、Alibaba Cloud のクラウドネイティブオブザーバビリティプラットフォームです。ARMS を使用すると、カスタム Grafana ダッシュボードを作成し、Prometheus を使用して柔軟なアラートルールを設定して、DLC ジョブのメトリクスを包括的に監視できます。詳細については、「Application Real-Time Monitoring Service (ARMS) とは」をご参照ください。
課金
ARMS の使用には料金が発生します。課金の詳細については、「ARMS の課金」をご参照ください。
モニタリングデータの統合
DLC のモニタリングデータを ARMS に統合するには:
-
ARMS コンソールにログインし、左側のナビゲーションウィンドウで [インテグレーションセンター] をクリックします。
-
[インテグレーションセンター] ページで、[人工知能] タブをクリックし、[PAI-DLC 分散トレーニングサービス] をクリックします。
-
表示されるパネルの [プロビジョニングの開始] タブで、[データストレージリージョン] を選択し、[統合名] を入力して、[OK] をクリックします。
統合には約 1〜2 分かかります。[効果プレビュー]、[収集済みメトリクス]、[アラートルールテンプレート] タブに切り替えて、メトリックダッシュボード、サポートされているメトリクス、アラートルール名、テンプレートの詳細を表示することもできます。
-
統合が完了したら、[プロビジョニング] をクリックして、プロビジョニングされた環境の詳細を表示できます。
Grafana ダッシュボード
-
ARMS コンソールにログインします。左側のナビゲーションウィンドウで [プロビジョニング] を選択します。[プロビジョニング済み環境] > [クラウドサービスリージョン環境] タブで、環境名をクリックします。
-
[コンポーネント管理] タブの [コンポーネントタイプ] セクションで、[PAI-DLC 分散トレーニングサービス] を選択し、右側の [ダッシュボード] をクリックして、組み込みの Grafana ダッシュボードを表示します。
-
ダッシュボード名をクリックして、モニタリングダッシュボードを表示します。[PAI-DLC 分散トレーニングサービス - インスタンス詳細] ダッシュボードには、[workspaceId]、[jobId]、[pod]、[gpu] のフィルターが用意されています。メトリクスは [ジョブディメンション]、[カードディメンション]、[Pod ディメンション] のパネルに整理されています。[Pod ディメンション] パネルには、CPU 使用率、ディスク I/O レート、メモリ使用量などの Pod 詳細テーブルと、CPFS 読み取りレイテンシ、CPFS 書き込みデータ量、CPFS 読み取りデータ量の時系列チャートが表示されます。
設定 Prometheus アラート
Prometheus を使用して、次のようにモニタリングアラートを設定できます:
-
ARMS コンソールにログインします。左側のナビゲーションウィンドウで [プロビジョニング] を選択します。[プロビジョニング済み環境] > [クラウドサービスリージョン環境] タブで、環境名をクリックします。
-
[コンポーネント管理] タブの [コンポーネントタイプ] リストで、[PAI-DLC 分散トレーニングサービス] を選択し、[アラートルール] をクリックして、組み込みのアラートルールを表示します。デフォルトでは、これらのルールは [停止] 状態です。
-
組み込みのアラートルールはイベントを生成しますが、通知は送信しません。次の 2 つの方法のいずれかで、メールアドレスや他のプラットフォームに通知を送信するように設定できます:
-
通知ポリシーを設定します。このポリシーは、アラートイベントのマッチングルールを定義します。アラートイベントがルールに一致すると、システムは選択した通知方法で指定された受信者に通知を送信します。詳細については、「通知ポリシー」をご参照ください。
-
アラートルールを編集して通知方法を設定します。アラートルール管理ページで、左側のナビゲーションウィンドウからターゲットのコンポーネントタイプ (例:[PAI-DLC 分散トレーニングサービス]、[PAI-DSW]、[PAI-Quota Service]、[PAI-Quota (non-Lingjun)]) を選択します。リストからターゲットルールを見つけて [編集] をクリックします。Prometheus アラートルール編集ページで、アラート条件、持続時間、内容、通知をカスタマイズできます。詳細については、「Prometheus アラートルールの作成」をご参照ください。ルールを編集する際、[チェックタイプ] を [カスタム PromQL] に設定します。[カスタム PromQL ステートメント] フィールドに、
AliyunPaidlc_POD_STATE_ACTIVE{} > 80のような式を入力します。[持続時間] を 2 分に、[アラートレベル] を [P2] に設定します。[アラート通知] セクションで、[シンプルモード] を選択し、[受信者]、[通知期間] (00:00 から 23:59 まで)、[繰り返しポリシー] を設定します。設定が完了したら、[完了] をクリックします。
-