コマンドラインから Lightsail リソースの使用状況を監視する方法を教えてください。
Amazon Lightsail でホストされているウェブサイトまたはアプリケーションがダウンしている、または動作が非常に遅くなっています。これらの問題をトラブルシューティングできるよう、コマンドラインから Lightsail リソースの使用状況を監視したいと考えています。
簡単な説明
Lightsail インスタンスで実行されるサービスには、リソース使用率が高いなど、いくつかの要因が影響します。そこで、一般的なツールを使用して、Lightsail インスタンスの CPU、メモリ、ディスク I/O、ネットワークの使用量などのリソースを監視します。これは、コマンドラインからリアルタイムで実行できます。ツールを使用すると、どのプロセスが CPU、メモリ、ディスク I/O、またはネットワークを最も多く使用しているかを詳細に把握できます。
コマンドラインから Lightsail インスタンスのリソースを分析および監視するために使用できるリソースは次のとおりです。
- atop ツール
- htop ツール
- iostat コマンド、vmstat コマンド、mpstat コマンド
解決策
atop ツール
atop ツールでは、指定された時間内にプロセスが終了した場合でもすべてのプロセスのアクティビティが報告され、関連するすべてのシステム情報が継続的に記録されます。この継続的なログ記録により、問題が再発した場合でも分析対象の履歴データが得られます。atop ツールは、ほとんどの Linux ディストリビューションの公式リポジトリに含まれています。次のコマンドを実行して、atop ツールをインストールします。
Red Hat ベースのシステム
$ sudo yum install atop
Debian ベースのシステム
$ sudo apt install atop
atop ツールは、デフォルトですべてのアクティビティを 600 秒間隔で記録します。次のコマンドを実行し、アクティビティが 60 秒間隔で記録されるように atop ツールの設定を変更します。
Red Hat ベースのシステム
$sudo sed 's/600/60/' /etc/atop/atop.daily -i
Debian ベースのシステム
$ sudo sed 's/600/60/' /etc/default/atop -i
コマンドを実行すると、atop は 60 秒以内にすべてのアクティビティを記録します。データは /var/log/atop のログファイルに保存されます。これらのファイルには、「atop_ccyymmdd」という形式の名前が付けられます。例えば、「atop_20230902」は 2023 年 9 月 2 日の記録です。
ログファイルにアクセスするには atop -r atologfilepath コマンドを実行します。コマンドとログファイルは次の例に表示されます。
atop -r /var/log/atop/atop_20210902 ATOP - ip-172-20-139-91 2021/09/02 17:03:44 ---------------- 3h33m7s elapsed PRC | sys 6.51s | user 7.85s | #proc 103 | #tslpi 81 | #tslpu 0 | #zombie 0 | #exit 0 | CPU | sys 0% | user 3% | irq 0% | idle 197% | wait 0% | ipc notavail | curscal ?% | cpu | sys 0% | user 1% | irq 0% | idle 98% | cpu000 w 0% | ipc notavail | curscal ?% | cpu | sys 0% | user 1% | irq 0% | idle 98% | cpu001 w 0% | ipc notavail | curscal ?% |
この出力例では、最初に記録されたスナップショットは 2021/09/02 17:03:44 でした。次のスナップショットに進むには、キーボードの「t」キーを押します。前のスナップショットに戻るには、「T」(「t」の大文字) キーを押します。
atop で起動できる一般的なオプションは次のとおりです。
メモリでソート
$ atop -m
ディスクの詳細でソート
$ atop -d
ネットワークの詳細でソート
$ atop -n
htop ツール
htopツールは、CPUまたはコアごとの使用状況を表示する Linux 用のインタラクティブかつリアルタイムのプロセス監視アプリケーションです。このツールでは、メモリとスワップの使用量のテキストグラフも提供されます。
次のコマンドを実行して htop をインストールします。
Red Hat ベースのシステム
$ sudo yum install htop
Debian ベースおよび Ubuntu ベースのシステム
$ sudo apt install htop
次のコマンドを使用して、システムで htop を実行します。
$ htop
htop ツールでは、システムで実行中のすべてのプロセスが一覧表示され、各プロセスで使用されている CPU とメモリの量に関する情報を確認できます。プロセスを開始するために使用されるコマンドも含まれています。
出力の各列の定義は次のとおりです。
- **PID:**プロセスの ID 番号。
- **BUSER:**プロセスの所有者。
- **PR:**プロセスの優先順位。数値が小さいほど、優先度が高くなります。
- **NI:**優先度に影響するプロセスの優れた価値。
- **VIRT:**プロセスが使用する仮想メモリの量。
- **RES:**プロセスが使用する物理 RAM の量 (キロバイト単位)。
- **SHR:**プロセスが使用する共有メモリの量。
- **S:**プロセスの現在のステータス。
- **CPU:**プロセスが使用したプロセッサ時間の割合。
- **MEM:**プロセスが使用した物理 RAM の割合。
- **TIME+:**プロセスが使用したプロセッサ時間。
- **COMMAND:**プロセスを開始したコマンドの名前。
iostat コマンド、vmstat コマンド、mpstat コマンド
iostat、vmstat、mpstat コマンドは sysstat バンドルに含まれています。次のコマンドを使用して、この一連のツールを Lightsail インスタンスにインストールします。
Amazon Linux、CentOS、RHELなどの Red Hat ベースのシステム
$ sudo yum install sysstat
Debian と Ubuntu
$ sudo apt-get install sysstat
継続的なデータ収集を行うために、次のコマンドで sysstat を起動して有効にします。
$ sudo systemctl start sysstat
$ sudo systemctl enable sysstat
iostat コマンド
iostat コマンドは、システム入出力ストレージデバイスの統計情報を収集して表示します。このツールは多くの場合、デバイスやディスクなどのストレージデバイスのパフォーマンスに関する問題を追跡するために使用されます。一般的な iostat オプションは次のとおりです。
- **iostat:**レポートと統計情報を取得する。
- **iostat -x:**より詳細な統計情報を表示する。
- **iostat -c:**CPU 統計情報のみを表示する。
- **iostat -d:**デバイスレポートのみを表示する。
- **iostat -xd:**デバイスのみの拡張 I/O 統計情報を表示する。
以下は iostat コマンドの出力例です。
$ iostat Linux 4.14.246-187.474.amzn2.x86_64 10/22/2021 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.34 0.00 1.36 1.06 1.67 90.58 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvda 41.64 1496.90 890.16 502148 298612
vmstat コマンド
vmstat (仮想メモリ統計情報) コマンドは、システムメモリ、プロセス、割り込み、ページング、ブロック I/O に関する情報を収集して表示します。vmstat コマンドでは、サンプル間隔を指定して、ほぼリアルタイムでシステムアクティビティを観察できます。vmstat コマンドと出力の例を次に示します。
$ vmstat 2 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 0 1409320 2088 485404 0 0 568 724 232 393 4 2 93 1 1 0 0 0 1409332 2088 485404 0 0 0 67 146 261 0 0 100 0 0 0 0 0 1408916 2088 485404 0 0 0 0 157 276 0 0 100 0 0 0 0 0 1408980 2088 485408 0 0 0 0 161 259 0 0 100 0 0 0 0 0 1408984 2088 485408 0 0 0 0 105 190 0 0 100 0 0
vmstat コマンドで使用できる一般的なオプションは次のとおりです。
-a オプションは、システムのアクティブメモリと非アクティブメモリを表示します。
$ vmstat -a procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 2 0 0 1402016 311232 218864 0 0 60 77 74 129 0 0 99 0 0
-d オプションはディスクの統計情報を報告します。
$ vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec nvme0n1 7728 25 433681 4544 3133 93 555950 4196 0 1
mpstat コマンドは、システム内のすべての論理プロセッサのパフォーマンス統計を収集して表示します。mpstat コマンドをオプションなしで実行すると、起動時以降のすべての論理プロセッサのパフォーマンス統計を含む 1 つのレポートが生成されます。
$ mpstat Linux 4.18.0-305.el8.x86_64 (ip-xxx-xx-x-xx.ec2.internal) 10/27/2021 _x86_64_ (2 CPU) 04:23:26 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:23:26 PM all 8.42 0.13 2.43 1.49 0.18 0.05 0.22 0.00 0.00 87.08
前の例の最初の行は、列ラベルのセットです。2 行目は各列の値です。
- %usr: ユーザーレベルでの CPU 使用率。
- %nice: 「nice」というラベルが付いたユーザープロセスの CPU 使用率。
- %sys: システム (Linux カーネル) レベルでの CPU 使用率。
- %iowait: ディスクの読み取り/書き込みを待機するアイドル状態の CPU 使用率。
- %irq: ハードウェアの割り込みを処理する際の CPU 使用率。
- %soft: ソフトウェアの割り込みを処理する際の CPU 使用率。
- %steal: ハイパーバイザーによる他の仮想プロセッサの処理を待機する際の CPU 使用率。
- %guest: 仮想プロセッサで消費された CPU 使用率。
- idle: アイドル時間 (処理なし、およびディスクの読み取り/書き込みの待機なし) の CPU 使用率。
前述のコマンドラインツールを使用して、リソース使用率が高いプロセスを特定します。この情報を使用して、ワークロードに十分なリソースを持つインスタンスを選択してください。
関連するコンテンツ
- 質問済み 7分前lg...
- 質問済み 2年前lg...
- 質問済み 8ヶ月前lg...
- AWS公式更新しました 3ヶ月前
- AWS公式更新しました 9ヶ月前
- AWS公式更新しました 8ヶ月前
- AWS公式更新しました 8ヶ月前