View コンピュート メトリクス
この記事では、 Databricks UI でネイティブのコンピュート メトリクス ツールを使用して、主要なハードウェアと Spark メトリクスを収集する方法について説明します。 メトリクス UI は、all-purpose とジョブ コンピュートで使用できます。
メトリクスはほぼリアルタイムで利用でき、通常の遅延は1分未満です。 メトリクスは、顧客のストレージではなく、 Databricks管理ストレージに保存されます。
この新しいメトリクスはGangliaとどう違うのですか?
新しいコンピュート メトリクス UI では、 Spark 消費量や内部 Databricks プロセスなど、クラスターのリソース使用量をより包括的に把握できます。 これに対し、Ganglia UI では Spark コンテナの消費量のみが測定されます。 この違いにより、2 つのインターフェイス間でメトリクス値に不一致が生じる可能性があります。
Access コンピュート メトリクス UI
コンピュート メトリクス UI を表示するには:
- サイドバーの [ コンピュート ] をクリックします。
- メトリクスを表示するコンピュート リソースをクリックします。
- メトリクス タブをクリックします。
Hardware メトリクスはデフォルトで示されています。 Spark メトリクスを表示するには、[ ハードウェア ] というラベルの付いたドロップダウンメニューをクリックし、[ Spark ] を選択します。 インスタンスが GPU 対応の場合は、 GPU を選択することもできます。
期間によるメトリクスのフィルタリング
過去のメトリクスを表示するには、日付ピッカーフィルターを使用して時間範囲を選択します。 メトリクスは毎分収集されるため、過去 30 日間の任意の日、時間、または分でフィルタリングできます。 カレンダーアイコンをクリックして定義済みのデータ範囲から選択するか、テキストボックス内をクリックしてカスタム値を定義します。
チャートに表示される時間間隔は、表示している時間の長さに基づいて調整されます。 ほとんどのメトリクスは、現在表示している時間間隔に基づく平均値です。
[ リフレッシュ ]ボタンをクリックして最新のメトリックを取得することもできます。
ノードレベルでのメトリクスの表示
個々のノードのメトリクスを表示するには、 コンピュート のドロップダウンメニューをクリックし、メトリクスを表示するノードを選択します。 GPU メトリクスは、個々のノードレベルでのみ使用できます。 Spark メトリクスは、個々のノードでは使用できません。
特定のノードを選択しない場合、結果はクラスター内のすべてのノード (ドライバーを含む) で平均化されます。
Hardware メトリクス チャート
次のハードウェア メトリクス チャートは、コンピュート メトリクス UI で表示できます。
-
サーバーの負荷分散 : このグラフには、各ノードの過去 1 分間の CPU 使用率が表示されます。
-
CPU 使用率 : CPU 秒数の合計コストに基づく、各モードで CPU が費やした時間の割合。 メトリクスは、チャートに表示されている時間間隔に基づいて平均化されます。 追跡されるモードは次のとおりです。
- guest: VM を実行している場合、それらの VM が使用する CPU
- iowait: I/O の待機に費やされた時間
- idle: CPU が何もしていなかった時間
- irq: 割り込み要求に費やされた時間
- nice: ポジティブなnicenessを持つプロセス、つまり他のタスクよりも優先度が低いプロセスによって使用された時間
- softirq: ソフトウェア割り込み要求に費やされた時間
- steal: あなたが VM の場合は、他の VM があなたの CPU から "盗んだ" 時間を計ります
- system: カーネルで費やされた時間
- user: ユーザーランドで過ごした時間
-
メモリ使用率 : 各モードの合計メモリ使用量をバイト単位で測定し、グラフに表示されている時間間隔に基づいて平均化します。 次の使用タイプが追跡されます。
- used: 使用済みメモリ (コンピュート上で実行されているバックグラウンド プロセスによって使用されるメモリを含む)
- free: 未使用のメモリ
- buffer: カーネルバッファが使用するメモリ
- cached: OS レベルでファイルシステムキャッシュによって使用されるメモリ
-
メモリ スワップ使用率 : 各モードによるメモリ スワップ使用量の合計で、バイト単位で測定され、グラフに表示されている時間間隔に基づいて平均化されます。
-
空きファイルシステムスペース : 各マウントポイントによるファイルシステムの合計使用量で、バイト単位で測定され、グラフに表示されている時間間隔に基づいて平均化されます。
-
ネットワーク経由で受信 : 各デバイスがネットワーク経由で受信したバイト数で、グラフに表示されている時間間隔に基づいて平均化されます。
-
ネットワーク経由で送信 : 各デバイスがネットワーク経由で送信したバイト数で、グラフに表示されている時間間隔に基づいて平均化されます。
-
Number of active nodes : これは、特定のコンピュートの各タイムスタンプにおけるアクティブノードの数を示します。
Spark メトリクスチャート
次の Spark メトリクスチャートは、コンピュート メトリクス UI で表示できます。
- サーバーの負荷分散 : このグラフには、各ノードの過去 1 分間の CPU 使用率が表示されます。
- アクティブなタスク : 任意の時点で実行されているタスクの合計数で、グラフに表示されている時間間隔に基づいて平均化されます。
- 失敗したタスクの合計 : エグゼキューターで失敗したタスクの合計数で、グラフに表示されている時間間隔に基づいて平均化されます。
- 完了したタスクの合計 : エグゼキューターで完了したタスクの合計数で、グラフに表示されている時間間隔に基づいて平均化されます。
- タスクの合計数 : エグゼキューター内のすべてのタスク (実行中、失敗、完了) の合計数で、グラフに表示されている時間間隔に基づいて平均化されます。
- 合計シャッフル読み取り : シャッフル読み取りデータの合計サイズで、バイト単位で測定され、グラフに表示されている時間間隔に基づいて平均化されます。
Shuffle read
は、ステージの開始時にすべてのエグゼキューターでシリアル化された読み取りデータの合計を意味します。 - 合計シャッフル書き込み: シャッフル書き込みデータの合計サイズで、バイト単位で測定され、グラフに表示されている時間間隔に基づいて平均化されます。
Shuffle Write
は、送信前 (通常はステージの終了時) にすべてのエグゼキューターに書き込まれたシリアル化されたすべてのデータの合計です。 - Total task duration : JVM がエグゼキューターでタスクの実行に費やした合計経過時間で、秒単位で測定され、グラフに表示されている時間間隔に基づいて平均化されます。
GPU メトリクス チャート
GPU メトリクスは、 Databricks Runtime ML 13.3 以降でのみ使用できます。
次の GPU メトリクス チャートは、コンピュート メトリクス UI で表示できます。
- サーバーの負荷分散 : このグラフには、各ノードの過去 1 分間の CPU 使用率が表示されます。
- GPU デコーダーごとの使用率 : グラフに表示されている時間間隔に基づいて平均化された、GPU デコーダー使用率の割合。
- GPU エンコーダーごとの使用率 : グラフに表示されている時間間隔に基づいて平均化された、GPU エンコーダーの使用率の割合。
- GPU ごとのフレーム バッファ メモリ使用率 バイト数: フレーム バッファ メモリ使用率はバイト単位で測定され、グラフに表示されている時間間隔に基づいて平均化されます。
- GPU ごとのメモリ使用率 : グラフに表示されている時間間隔に基づいて平均化された GPU メモリ使用率の割合。
- GPU ごとの使用率 : グラフに表示されている時間間隔に基づいて平均化された GPU 使用率の割合。
トラブルシューティング
ある期間に不完全または欠落しているメトリクスが表示される場合は、次のいずれかの問題である可能性があります。
- メトリクスのクエリと保存を担当する Databricks サービスの停止。
- 顧客側のネットワークの問題。
- コンピュートが異常な状態にあるか、または健康に問題があった。