コマンドラインから Lightsail リソースの使用状況をモニタリングするにはどうすればよいですか?

所要時間4分
0

Amazon Lightsail でホストされているウェブサイトまたはアプリケーションがダウンしているか、とても低速で実行されています。これらの問題をトラブルシューティングできるように、コマンドラインから Lightsail リソースの使用状況をモニタリングするにはどうすればよいですか?

簡単な説明

Lightsail インスタンスで実行されているサービスに影響する要因はいくつかあります (高いリソース使用率など)。一般的なツールを使用すると、コマンドラインから Lightsail インスタンスの CPU、メモリ、ディスク I/O、ネットワーク使用率などのリソースをリアルタイムでモニタリングできます。

コマンドラインから Lightsail インスタンスのリソースの使用状況を分析およびモニタリングすると、システムに関するインサイトがリアルタイムで得られます。これにより、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_20210902」は 2021 年 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 年 9 月 2 日 17 時 3 分 44 秒のものでした。次のスナップショットに進むには、キーボードの「t」キーを押します。前のスナップショットに戻るには、「T」(大文字の 「t」)キーを押します。

次のオプションは、atop を起動するために一般的に使用されます。

メモリで並べ替える

$ atop -m

ディスクの詳細で並べ替える

$ atop -d

ネットワークの詳細で並べ替える

$ atop -n

htop ツール

htop ツールは、Linux 向けのインタラクティブでリアルタイムのプロセスモニタリングアプリケーションで、CPU またはコアごとの使用率を表示します。このツールは、メモリとスワップの使用状況の有用なテキストグラフも提供します。

次のコマンドを実行して htop をインストールします。

Red Hat ベースのシステム

$ sudo yum install htop

Debian および Ubuntu ベースのシステム

$ sudo apt install htop

以下のコマンドを使用して、システムで htop を実行します。

$ htop

htop ツールは、システム上で実行中のすべてのプロセスを一覧表示し、各プロセスが使用している CPU とメモリの量に関する情報を含みます。プロセスを開始するために実行されるコマンドも含まれます。

出力の各列の定義を次に示します。

  • PID: プロセスのプロセス ID 番号。
  • BUSER: プロセスの所有者。
  • PR: プロセスの優先順位。数字が小さいほど、優先度が高くなります。
  • NI: プロセスの優先度に影響する nice 値。
  • VIRT: プロセスが使用している仮想メモリの量。
  • RES: プロセスが使用している物理 RAM の量 (KB 単位)。
  • SHR: プロセスが使用している共有メモリの量。
  • S: プロセスの現在のステータス (ゾンビ状態、スリープ中、実行中、中断なくスリープ中、または追跡対象)。
  • CPU: プロセスによって使用されるプロセッサ時間の割合。
  • MEM: プロセスによって使用される物理 RAM の割合。
  • TIME+: プロセスが使用したプロセッサ時間。
  • COMMAND: プロセスを開始したコマンドの名前。

iostat、vmstat、および mpstat コマンド

iostatvmstat、および 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 コマンドは、システム内のすべての論理プロセッサのパフォーマンス統計を収集および表示します。オプションなしで mpstat コマンドを実行すると、ブート時以降のすべての論理プロセッサのパフォーマンス統計を含む単一のレポートが生成されます。

$ 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 使用率 (%) (プロセスなし、ディスクの読み取り/書き込みの待機なし)。

前述のコマンドラインツールを使用して、リソース使用率が高いプロセスを特定できます。また、この情報を使用して、ワークロードのために十分なリソースを持つインスタンスを選択できます。


AWS公式
AWS公式更新しました 2年前