Amazon SageMaker AI のノートブックインスタンスが Jupyter を開けないため、トラブルシューティングしたいです。
解決策
SageMaker AI ノートブックインスタンスが Jupyter を開けない場合のトラブルシューティングには、次の手順を実行します。
- SageMaker AI コンソールで、ノートブックインスタンスのステータスが InService であることを確認します。ステータスが Pending の場合、ノートブックインスタンスの準備が完了していません。
- ブラウザのキャッシュをクリアしてください。または、別のブラウザを使用して Jupyter ノートブックにアクセスしてください。
- ブラウザの拡張機能を使用せずに Jupyter ノートブックにアクセスします。プロキシ設定が原因で、Jupyter ノートブックが開かない場合があります。
- 別のネットワーク環境に切り替えてください。組織のネットワークから Jupyter を開こうとした場合は、ホームネットワークを試してください。
- アクセスをブロックしているファイアウォールがないか確認してください。ローカルマシン上のプロキシまたはウイルス対策ソフトウェアが WebSocket 接続をブロックしている場合があります。
- ブラウザのネットワークログで、WebSocket 接続エラーがないか確認してください。ログを確認するには、ブラウザの開発者モードを使用します。
- Jupyter ログにエラーがないか確認してください。
それでも Jupyter ノートブックを開くことができない場合は、ノートブックインスタンスを再起動します。再起動すると、SageMaker AI ノートブックインスタンスが基盤 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを置き換えます。ノートブックインスタンスを定期的に再起動して、ソフトウェアを最新の状態に保つことをおすすめします。ノートブックインスタンスは新しいホストに移行するため、ブラウザの HTTP 503 や 504 エラーを解決できる可能性があります。
注: ファイルシステム /home/EC2-user/SageMaker は、ノートブックインスタンス上の唯一の永続ストレージです。インスタンスを再起動すると、他のデータはすべて失われます。
SageMaker AI ノートブックインスタンスを再起動するには、次の手順を実行します。
- SageMaker AI コンソールを開きます。
- ナビゲーションペインで [ノートブックインスタンス] を選択します。
- 再起動するノートブックインスタンスを選択します。
- [アクション] ドロップダウンリストで [停止] を選択します。
- ノートブックインスタンスが Stopped ステータスに移行した後、[アクション] ドロップダウンリストで [開始] を選択します。
- ノートブックインスタンスの URL を開きます。
ノートブックインスタンスの負荷が高い場合のトラブルシューティング
ノートブックインスタンスの過負荷を解決するには、次のアクションを実行します。
開いているセッション数が過剰である
アクティブなセッション数とノートブック数が多すぎる場合、ノートブックの読み込みに時間がかかり、ブラウザでタイムアウトになる場合があります。開いているセッションを確認するには、Jupyter ダッシュボードの [実行中] タブを参照します。次に、不要なノートブックを閉じるか、ターミナルセッションを開きます。
CPU またはメモリの使用率が高い
CPU またはメモリの使用率を確認するには、次の手順を実行します。
-
Jupyter ダッシュボードを開き、[ファイル] タブを選択します。
-
[新規] を選択し、[ターミナル] を選択します。
-
メモリ使用率を確認します。
$ free -h
-
CPU 使用率を確認します。
$ top
CPU またはメモリの使用率が高く、これ以上リソースを解放できない場合は、次の手順を実行して大きいノートブックインスタンスに切り替えます。
- ノートブックインスタンスを停止します。
- [アクション] ドロップダウンリストで [設定の更新] を選択します。
- 新しいノートブックのインスタンスタイプを選択し、[保存] を選択します。
注: 各 AWS リージョンで使用できるインスタンスタイプのリストについては、「Amazon SageMaker AI の料金」を参照してください。
- [アクション] ドロップダウンリストで [開始] を選択します。
- ノートブックインスタンスの URL を開きます。
ディスク使用率が高い
ディスク使用率を確認するには、次の手順を実行します。
-
Jupyter ダッシュボードを開き、[ファイル] タブを選択します。
-
[新規] を選択し、[ターミナル] を選択します。
-
SSH セッションを開始し、ディスク使用率を確認します。
$ df -h
-
ファイルシステム /home/ec2-user/SageMaker のディスク使用率を確認します。
ディスク使用率が高い場合は、/home/ec2-user/SageMaker ディレクトリから一時ファイルを削除します。
または、次の手順を実行して Amazon Elastic Block Store (Amazon EBS) のボリュームサイズを増やします。
- ノートブックインスタンスを停止します。
- [アクション] ドロップダウンリストで [設定を更新] を選択します。
- 新しいボリュームサイズを入力し、[保存] を選択します。
注: デフォルトの Amazon EBS ボリュームサイズは 5 GB です。ボリュームサイズは最大 16 TB まで増やすことができます。
- [アクション] ドロップダウンリストで [開始] を選択します。
- ノートブックインスタンスの URL を開きます。
ライフサイクルスクリプトをアタッチした後にエラーが発生する
次のシナリオでは、ライフサイクルスクリプトで問題が発生する可能性があります。
ライフサイクルスクリプトの実行に 5 分よりも長くかかる
ライフサイクル設定スクリプトが実行されるまで、ノートブックは最大 5 分間待機します。ノートブックの起動時にパッケージをインストールする場合は、インストールプロセスに 5 分よりも長くかかる場合があります。この問題を解決するには、nohup コマンドを実行してライフサイクルスクリプトがバックグラウンドで実行できるようにします。
コマンド例
===
#!/bin/bash
set -e
nohup pip install xgboost &
=====
注: ライブラリのインストール時に、スクリプトは実行を停止します。スクリプトがまだ実行中かどうかを確認するには、ps コマンドを実行します。
LifeCycle スクリプトが失敗し、エラーコード 127 が発生する
このエラーは、Windows でスクリプトを編集し、余分な Windows の行末文字 (CRLF) を編集した場合に発生します。このエラーは、Windows でスクリプトを作成し、そのスクリプトを Unix 環境にコピーした場合にも発生します。Windows システムと Unix システムでは、改行文字を表す記号が異なります。この問題を解決するには、テキストエディタを設定し、Unix 形式のファイルを作成します。
たとえば、Notepad++ では画面の右下にドキュメントのフォーマットが表示されます。デフォルトでは、フォーマットは Dos\Windows に設定されています。Notepad++ の設定でフォーマットを Unix に変更できます。または、[編集] メニューで行末文字を Unix 形式に変換します。