スキップしてコンテンツを表示

SageMaker AI ノートブックインスタンスのリソース使用率を確認する方法を教えてください。

所要時間2分
0

モデルのトレーニングや大規模なデータセットのロードを行うために Amazon SageMaker AI ノートブックインスタンスを起動しましたが、そのノートブックインスタンスがフリーズしているようです。SageMaker AI インスタンスのリソース使用状況を確認できません。

解決策

SageMaker ブラウザまたはノートブックインスタンスが応答しない場合は、Amazon Linux コマンドを実行するか、Amazon CloudWatch メトリクスをレビューしてリソースの割り当てを確認します。

Linux コマンドを実行して SageMaker AI リソースの使用状況を確認する

次の手順を実行します。

  1. SageMaker AI コンソールを開きます。
  2. ナビゲーションペインで [ノートブックインスタンス] を選択します。
  3. SageMaker AI ノートブックインスタンスの横にある Jupyter または JupyterLab を開きます。
  4. ターミナルを開きます。
  5. 次のコマンドを実行し、リソース割り当てを確認します。
    使用可能なシステムメモリとプロセッサ負荷
    top
    実行中のタスクとプロセッサ負荷
    ps -ax
    ディスクスペースの使用率と可用性
    df -h
    RAM の使用率と可用性
    free -m

CloudWatch メトリクスを使用して SageMaker AI リソースの使用状況を確認する

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

ライフサイクルスクリプトを使用します。たとえば、publish-instance-metrics スクリプトは、ノートブックインスタンスから CloudWatch にシステムレベルのメトリクスを発行します。詳細については、GitHub のウェブサイトで「publish-instance-metrics / on-start.sh」を参照してください。

注: インスタンスのメトリクスを CloudWatch に送信するには、そのインスタンスは AWS Identity and Access Management (IAM) の実行ロールを引き受ける必要があります。実行ロールにアタッチされている IAM ポリシーにアクセス許可 cloudwatch:PutMetricData を追加します。

ポリシーの例

{   
   "Version": "2012-10-17",   
   "Statement": [   
     {   
            "Effect":   
            "Allow",   
            "Action": [   
                "cloudwatch:PutMetricData"   
            ],   
            "Resource": "*"   
            }   
     ]   
}

ライフサイクル設定で CloudWatch Logs を有効にするときは、次のアクセス許可を持つ SageMaker ロールを使用します。

{   
   "Version": "2012-10-17",   
   "Statement": [   
     {   
            "Effect":   
            "Allow",   
            "Action": [   
                "logs:CreateLogDelivery",   
                "logs:CreateLogGroup",    
                "logs:CreateLogStream",   
                "logs:DeleteLogDelivery",   
                "logs:Describe*",   
                "logs:GetLogDelivery",   
                "logs:GetLogEvents",   
                "logs:ListLogDeliveries",   
                "logs:PutLogEvents",   
                "logs:PutResourcePolicy",   
                "logs:UpdateLogDelivery"   
            ],   
            "Resource": "*"   
            }  
    ]   
}

スクリプトの失敗を防ぐために、ノートブックインスタンスがインターネットに接続して設定ファイル amazon-cloudwatch-agent.json を取得できることを確認してください。ノートブックにインターネットアクセスがない場合は、.json ファイルを GitHub からローカルマシンに手動でダウンロードします。ファイルを Amazon Simple Storage Service (Amazon S3) バケットにアップロードし、bash コードを変更して S3 バケットから設定ファイルをコピーします。on-start.sh LLC スクリプトで wget コマンドを実行し、wget コマンドを使用している行を削除します。次に、AWS CLI コマンド s3 cp を追加し、.json ファイルを S3 バケットからディレクトリにコピーします。CloudWatch エージェントファイルをディレクトリに配置し、次のコマンドを実行してエージェントを起動することをおすすめします。

``/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a \
append-config -m ec2 -c file://$(pwd)/amazon-cloudwatch-agent.json

Amazon S3 や CloudWatch などの他の AWS サービスにアクセスするために、インターフェイスの仮想プライベートクラウド (VPC) エンドポイントを作成する必要があります。

SageMaker AI ノートブックを設定し、CloudWatch メトリクスを確認する

次の手順を実行します。

  1. SageMaker AI コンソールを開きます。

  2. ナビゲーションペインで [ノートブックインスタンス] を選択します。

  3. SageMaker ノートブックの横にある Jupyter または Jupyterlab を開きます。

  4. ターミナルを開きます。

  5. 次のコマンドを実行すると、amazon-cloudwatch-agent-config-wizard が開きます。

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
  6. ウィザードの手順に従い、プロンプトが表示されたら次の手順を実行します。
    [オンプレミスホスト] を選択します。
    [StatsD Daemon]no を選択します。
    [CollectD]no を選択します。

  7. 次のコマンドを実行してサーバーで CloudWatch エージェントを起動し、ウィザードが作成した config.json ファイルを含めます。

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:///opt/aws/amazon-cloudwatch-agent/bin/config.json -s
  8. CloudWatch コンソールを開きます。

  9. SageMaker AI のメトリクスを確認するには、[メトリクス] を選択し、[CWAgent] を選択します。

SageMaker AI ノートブック用の AWS ライフサイクル設定スクリプトの他の例については、GitHub のウェブサイトで amazon-sagemaker-notebook-instance-lifecycle-config-samples を参照してください。

関連情報

Amazon CloudWatch での、Amazon SageMaker AI 監視用のメトリクス

CloudWatch エージェントが収集したメトリクス

Amazon SageMaker AI の使用中にプロビジョニングされた AWS リソースを監視するためのツール

ターミナル (JupyterLab のウェブサイト)

コメントはありません