atop ツールと atopsar ツールを使用して、EC2 Linux インスタンス上のプロセスの使用統計履歴を取得する方法を教えてください。

所要時間4分
0

atop ツールを使用して、Amazon EC2 Linux インスタンスで実行されているプロセスの CPU、メモリ、ディスク I/O などのリソース使用履歴をモニタリングする方法を学びたいと考えています。atop をインストールしてログファイルを分析する方法を知りたいと考えています。

簡単な説明

atop ツールは、後で分析できるようにリソースの使用履歴を記録するパフォーマンスモニタリングツールです。このツールはリアルタイムのレポートも提供します。各プロセスおよびスレッドの CPU 使用率、メモリ消費量、ディスク I/O の使用状況を取得できます。atop ツールは、統計の記録中はバックグラウンドサービスとしてアクティブなままになっています。これにより、長期間のサーバー分析が可能になり、データはデフォルトで 28 日間保存されます。

注: atop はインストール後にのみデータを記録します。atop のインストール日より前のパフォーマンスの履歴データを取得することはできません。

解決策

atop をインストールする

インストール手順については、「自身の Amazon Linux・RHEL・CentOS・Ubuntu を実行している EC2 インスタンスに、どうすれば ATOP および SAR モニタリングツールを設定できるかを教えてください」を参照してくだしあ。

最上位の履歴レポートログを作成

atop ツールは /var/log/atop にログファイルを作成します。これらのファイルには、「atop_ccyymmdd」という形式の名前が付けられます。例えば、「atop_20210902」は 2021 年 9 月 2 日の記録です。

ログファイルにアクセスするには、次のコマンドを実行します:

atop -r /var/log/atop/atop_ccyymmdd

atop_ccyymmdd を確認する日付に置き換えます。

以下のコマンドとログファイルの例を参照してください。

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」キー (大文字) を押します。特定のタイムスロットを分析するには、「b」キーを押して日付と時刻を入力します。atop ツールは、Enter new time 変数で指定された時間までスキップします。

NET |  lo      ----  |  pcki       2  |  pcko       2  |  sp    0 Mbps |  si    0 Kbps  |  so    0 Kbps  |  erro       0  |
Enter new time (format [YYYYMMDD]hhmm):
  PID              TID              RDDSK              WRDSK             WCANCL              DSK             CMD        1/4

さまざまな統計情報を表示するには、指定されたショートカットキーを押します。ショートカットキーの例は次のとおりです。

  • g: 汎用情報 (デフォルト)。
  • m: メモリの詳細。
  • d: ディスクの詳細。
  • n: ネットワークの詳細。このキーは、netatop カーネルモジュールがインストールされている場合にのみ機能します。
  • c: プロセスごとの完全なコマンドライン。

次のショートカットキーを使用して、プロセスのリストをソートできます。

  • C: CPU アクティビティ。
  • M: メモリ消費量。
  • D: ディスクアクティビティ。
  • N: ネットワークアクティビティ。このキーは、netatop カーネルがインストールされている場合にのみ機能します。
  • A: 最もアクティブなシステムリソース (自動モード)。

h キーを押すと、ヘルプドキュメントが表示されます。

一定期間の最上位レポートログを作成

ログファイルにアクセスして特定の期間のパフォーマンスデータのみを抽出するには、次のコマンドを実行します:

atop -r /var/log/atop/atop_ccyymmdd -b starttime -e endtime -M

atop_ccyymmdd を確認する日付に置き換えます。starttime をパフォーマンス期間の開始時間に、endtime をパフォーマンス期間の終了時間に置き換えます。

たとえば、次のコマンドは、2024 年 4 月 22 日の 08:00 から 08:10 の間にメモリ用にキャプチャされたパフォーマンスデータを返します:

$ atop -r /var/log/atop/atop_20240422 -b 0800 -e 0810
            -M

この例で使われているフラグ:

  • b: 開始時間
  • e: 終了時刻
  • r: ファイルを指定
  • M: メモリ

atop コマンドによるシステムアクティビティレポートの生成

atopsar コマンドを使用してシステムアクティビティレポートを生成します。

フラグ -c を使用すると、システムの現在の CPU 使用率に関するレポートが生成されます。次の例は、このレポートの 2 つの結果を示しています。それぞれが 1 秒ずつずれています。

$ atopsar -c 1 2
ip-172-20-139-91  4.14.238-182.422.amzn2.x86_64  #1 SMP Tue Jul 20 20:35:54 UTC 2021  x86_64  2021/09/02

-------------------------- analysis date: 2021/09/02 --------------------------

18:50:16  cpu  %usr %nice %sys %irq %softirq  %steal %guest  %wait %idle  _cpu_
18:50:17  all     0     0    0    0        0       0      0      0   200
            0     0     0    0    0        0       0      0      0   100
            1     0     0    0    0        0       0      0      0   100
18:50:18  all     0     0    0    0        0       0      0      0   200
            0     0     0    0    0        0       0      0      0   100
            1     0     0    0    0        0       0      0      0   100

atopsar コマンドは、指定された時間枠内でデータを分析できます。例えば、当日の 13h00 (-b) に始まり、13h35 (-e) に終わるすべてのレポート (-A) を生成するには、次のコマンドを実行します。

atopsar -A -b 13:00 -e 13:35

複数の出力を取得するには、atopsar のフラグを 1 つのコマンドにまとめます。以下のコマンド例では、CPU 使用率プロセス (または) 負荷プロセスとスレッドをクエリします。

$ atopsar -cpP

出力例:

ip-172-31-89-231 6.1.84-99.169.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Apr 8 19:19:48 UTC 2024 x86_64 2024/04/22

-------------------------- analysis date: 2024/04/22 --------------------------

07:59:27 cpu %usr %nice %sys %irq %softirq %steal %guest %wait %idle cpu
08:00:27 all 0 0 0 0 0 0 0 4 95
08:01:27 all 0 0 0 0 0 0 0 0 100
08:02:27 all 0 0 0 0 0 0 0 0 100
08:03:27 all 0 0 0 0 0 0 0 0 100

-------------------------- analysis date: 2024/04/22 --------------------------

07:59:27 pswch/s devintr/s clones/s loadavg1 loadavg5 loadavg15 load
08:00:27 203 70 1.07 0.13 0.29 0.14
08:01:27 53 31 0.07 0.05 0.23 0.13
08:02:27 59 31 0.87 0.02 0.19 0.12
08:03:27 68 35 0.22 0.00 0.15 0.10

-------------------------- analysis date: 2024/04/22 --------------------------

07:59:27 clones/s pexit/s curproc curzomb thrrun thrslpi thrslpu procthr
08:00:27 1.07 1.07 114 0 1 83 58
08:01:27 0.07 0.07 114 0 1 83 58
08:02:27 0.87 0.88 109 0 1 83 53
08:03:27 0.22 0.28 105 0 1 76 52

atop が取得して表示するフラグと出力値の詳細なリストについては、Linux ウェブサイトの atopsar を参照してください。

関連情報

リソースの過剰使用が原因で EC2 Linux インスタンスが応答しなくなるのはなぜですか?

DigitalOcean のウェブサイトにある Linux のトップコマンドのガイド

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ