モデルのトレーニングや大規模なデータセットのロードを行うために Amazon SageMaker AI ノートブックインスタンスを起動しましたが、そのノートブックインスタンスがフリーズしているようです。SageMaker AI インスタンスのリソース使用状況を確認できません。
解決策
SageMaker ブラウザまたはノートブックインスタンスが応答しない場合は、Amazon Linux コマンドを実行するか、Amazon CloudWatch メトリクスをレビューしてリソースの割り当てを確認します。
Linux コマンドを実行して SageMaker AI リソースの使用状況を確認する
次の手順を実行します。
- SageMaker AI コンソールを開きます。
- ナビゲーションペインで [ノートブックインスタンス] を選択します。
- SageMaker AI ノートブックインスタンスの横にある Jupyter または JupyterLab を開きます。
- ターミナルを開きます。
- 次のコマンドを実行し、リソース割り当てを確認します。
使用可能なシステムメモリとプロセッサ負荷
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 メトリクスを確認する
次の手順を実行します。
-
SageMaker AI コンソールを開きます。
-
ナビゲーションペインで [ノートブックインスタンス] を選択します。
-
SageMaker ノートブックの横にある Jupyter または Jupyterlab を開きます。
-
ターミナルを開きます。
-
次のコマンドを実行すると、amazon-cloudwatch-agent-config-wizard が開きます。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
-
ウィザードの手順に従い、プロンプトが表示されたら次の手順を実行します。
[オンプレミスホスト] を選択します。
[StatsD Daemon] で no を選択します。
[CollectD] で no を選択します。
-
次のコマンドを実行してサーバーで 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
-
CloudWatch コンソールを開きます。
-
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 のウェブサイト)