すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:atop ツールを使用した Linux メトリックの監視

最終更新日:Oct 17, 2025

atop ツールは、インタラクティブなインターフェイスを通じてシステムのステータスに関するリアルタイムのインサイトを提供します。また、バックグラウンドサービスとして実行し、指定された頻度でシステムとプロセスのアクティビティのスナップショットを記録することもできます。これらのスナップショットはバイナリログとして保存され、システムの問題を追跡および診断するのに役立ちます。

atop のインストール

  1. Workbench を使用して Linux インスタンスにログインする

  2. atop をインストールします。

    Alibaba Cloud Linux 2/3、CentOS 7/8、または Fedora

    # パッケージを更新します。
    sudo yum update -y
    
    # atop をインストールします。
    sudo yum install atop -y

    Ubuntu または Debian

    # パッケージを更新します。
    sudo apt update -y
    
    # atop をインストールします。
    sudo apt install atop -y

    CentOS Stream 9 または Rocky Linux 9

    # パッケージを更新します。
    sudo dnf update -y
    
    # EPEL リポジトリをインストールします。
    sudo dnf install epel-release -y
    
    # atop をインストールします。
    sudo dnf install atop -y

    openSUSE

    # パッケージを更新します。
    sudo zypper update -y
    
    # atop をインストールします。
    sudo zypper install atop atop-daemon -y
  3. atop サービスを開始します。

    sudo systemctl start atop
  4. atop サービスが正常に開始されたことを確認します。

    sudo systemctl status atop を実行してサービスステータスを確認します。active (running) ステータスは成功を示します。

atop を使用したリアルタイムメトリックの表示

  1. atop [sampling_interval_in_seconds] [number_of_samples] コマンドを実行して、インタラクティブモードに入ります。

    # デフォルト設定で表示します (10 秒ごとにリフレッシュ)。
    atop
    
    # 5 秒ごとにシステムメトリックを表示します。
    atop 5
    
    # 10 秒間隔でシステムメトリックを 30 回収集します。
    atop 10 30
    
    # 30 秒間隔でメトリックを 10 回収集し、結果をファイルに書き込みます。
    atop 30 10 > /tmp/atop.mem
    • システムリソースの概要: このセクションでは、CPU、メモリ、スワップ領域、ディスク I/O、およびネットワークリソースの使用状況を要約します。

      image

    • プロセスレベルの詳細: このセクションでは、各プロセスのリソース消費量を示します。

      image

  2. インタラクティブモードでは、1 文字のキーを使用してビューを切り替えたり、プロセスをソートしたりします。

    キー

    機能

    目的

    c

    完全なコマンドラインを表示

    プロセスの開始に使用された特定のパラメーターを表示します。

    g

    汎用ビュー (デフォルト)

    CPU、メモリ増加、ディスク I/O の概要を表示します。

    m/M

    メモリビュー/メモリでソート

    メモリ使用量とページフォールトを分析します。メモリリークのトラブルシューティングを行います。

    d/D

    ディスクビュー/ディスクでソート

    ディスク I/O を分析します。ディスクの読み取り/書き込みアクティビティが高いプロセスを特定します。

    n/N

    ネットワークビュー/ネットワークでソート (netatop カーネルモジュールをインストールしてロードする必要があります)

    ネットワークトラフィックを分析します。ネットワークトラフィックが高いプロセスを特定します。

    a

    集計ビュー

    プログラムのすべてのスレッドまたはプロセスのリソース消費量を集計します。

    C

    CPU でソート

    最も多くの CPU を消費するプロセスをすばやく特定します。

    h

    ヘルプを表示

    その他のキーボードショートカットを表示します。

    q

    終了

    インタラクティブモードを終了します。

atop を使用した履歴メトリックの表示

atop サービスが開始されると、/var/log/atop/ ディレクトリにバイナリログファイルが定期的に生成されます。ファイル名は atop_YYYYMMDD 形式です。

atop ログはバイナリファイルです。catlessvim などのテキストエディターで開くと、判読不能な文字が表示されます。

履歴ログの読み取り

  1. 履歴ログファイルを読み取ります。

    atop -r <log_file> コマンドを使用して、特定のログファイルをロードします。

    # 今日のログを表示します。atop は当日のログファイルを自動的に見つけます。
    atop -r
    
    # 特定の日付のログを表示します。
    atop -r /var/log/atop/atop_YYYYMMDD
  2. ログ内の特定の時点に移動します。

    ログファイルをロードすると、インターフェイスにはそのファイルの最初のスナップショットが表示されます。

    1. t を押して、次のスナップショットにジャンプします。

    2. T (大文字) を押して、前のスナップショットにジャンプします。

    3. b を押し、HH:MM 形式で時刻を入力して、その時刻に直接ジャンプします。

atop のロギング動作の最適化

履歴ログを分析する際、デフォルトのロギング頻度 (10 分に 1 回) が特定の問題に対して広すぎたり、デフォルトの 28 日間の保持期間がニーズに合わなかったりすることがあります。構成ファイルを変更することで、atop のバックグラウンドロギング頻度、保持期間、およびストレージパスを調整できます。

  1. vim または別のテキストエディターを使用して構成ファイルを開きます。

    • RHEL およびその派生 (Alibaba Cloud Linux、CentOS、Fedora、Rocky Linux) の場合:

      sudo vim /etc/sysconfig/atop
    • Debian およびその派生 (Ubuntu、Debian) と openSUSE の場合:

      sudo vim /etc/default/atop
  2. デフォルトの構成ファイルには、次の内容が含まれています:

    LOGOPTS=""
    LOGINTERVAL=600
    LOGGENERATIONS=28
    LOGPATH=/var/log/atop
    • LOGOPTS: 追加のロギングオプション。たとえば、-L を設定すると、/var/log/atop/atop_current にシンボリックリンクが作成され、ログローテーション中に最新のログファイルにすばやくアクセスできるようになります。

    • LOGINTERVAL: ロギングのサンプリング間隔 (秒単位)。デフォルトは 600 (10 分) で、atop が 10 分ごとにシステムスナップショットを記録することを意味します。

    • LOGGENERATIONS: ログファイルのライフサイクル (日数)。デフォルトは 28 で、atop が 28 日より古いログファイルを削除することを意味します。

    • LOGPATH: ログファイルのストレージパス。デフォルトは /var/log/atop です。

      このパスを変更するには、新しいディレクトリが存在し、atop プロセスに書き込み権限があることを確認してください。
  3. 変更を適用するには、atop サービスを再起動します。

    sudo systemctl restart atop

メトリックレポートの生成

atopsar は、atop パッケージに含まれる非インタラクティブなコマンドラインツールです。atop のバイナリログファイルからデータを抽出し、システムパフォーマンスレポートを生成します。

  • 現在のシステムの CPU 使用率メトリックに関するレポートを 1 分間 (5 秒間隔で 12 サンプル) 生成します。

    atopsar -c 5 12
  • 当日の特定の時間範囲のメモリメトリックに関するレポートを生成します。

    # 今日の 18:00 から 18:01 までのメモリメトリックレポートを表示します。
    atopsar -m -b 18:00 -e 18:01
  • 特定の日付の特定の時間範囲のメモリメトリックに関するレポートを生成します。

    # 2025 年 8 月 15 日の 18:00 から 18:01 までのメモリメトリックレポートを表示します。
    atopsar -m -r /var/log/atop/atop_20250815 -b 18:00 -e 18:01

atopsar コマンド構文

atopsar [options] [interval] [count]
  • [options]: レポートの種類を指定するフラグ。たとえば、-c (CPU)、-m (メモリ)、-d (ディスク) などです。

  • [interval]: レポート出力の時間間隔 (秒単位)。

  • [count]: レポートが生成される回数。

メトリック理解

システムリソースの概要

メトリックカテゴリ

メトリック

説明

単位

ATOP

ホスト名、日付

現在のホスト名、サンプリング日時を表示します。

-

サンプリング間隔

2 つのサンプル間の時間間隔を表示します。

PRC (プロセスの合計)

sys

サンプリング間隔中にすべてのプロセスがカーネルモードで消費した合計 CPU 時間。

user

サンプリング間隔中にすべてのプロセスがユーザーモードで消費した合計 CPU 時間。

#proc

システム内のプロセスの総数。

単位

#trun

実行状態にあるスレッドの平均数。

単位

#tslpi

割り込み可能なスリープ状態にあるスレッドの数。

項目

#tslpu

割り込み不可能なスリープ状態にあるスレッドの数。

単位

#zombie

ゾンビプロセスの数。

単位

clones

サンプリング間隔中に clone システムコールによって作成された新しいプロセスまたはスレッドの数。

回/秒

#exit

サンプリング間隔中に終了したプロセスの数。

回/秒

CPU/cpu (合計/コアごと)

sys%

CPU がカーネルモードで費やした時間の割合。

%

user%

CPU がユーザーモードで費やした時間の割合。

%

irq%

CPU がハードウェア割り込み (irq) とソフトウェア割り込み (softirq) の処理に費やした時間の割合。

%

idle%

CPU が完全にアイドル状態だった時間の割合。

%

wait%

ディスク I/O の完了を待っている間に CPU がアイドル状態だった時間の割合。

%

steal%

仮想 CPU が物理 CPU を待っていた時間の割合 (ホストまたは他の VM によって盗まれた時間)。

%

guest%

仮想マシンの実行に費やされた CPU 時間の割合。

%

freq%

CPU の平均実行周波数を最大周波数のパーセンテージで表したもの。

%

CPL (CPU 負荷)

avg1/avg5/avg15

過去 1 分、5 分、15 分間のシステムの平均負荷。

-

csw

サンプリング間隔中のコンテキストスイッチの数。

回/秒

intr

サンプリング間隔中に発生した割り込みの総数。

回/秒

MEM (物理メモリ)

tot

システム内の物理メモリの総量。

GiB/MiB

free

完全に未使用の空きメモリの量。

GiB/MiB

cache

ファイルデータをキャッシュするためのページキャッシュとして使用されるメモリの量。

GiB/MiB

dirty

ページキャッシュ内のダーティページの量。変更されたがまだディスクに書き込まれていないページ。

MiB

buff

ブロックデバイスのメタデータをキャッシュするためのバッファーキャッシュとして使用されるメモリの量。

MiB

slab

カーネルが自身のデータ構造 (スラブアロケータ) のために使用するメモリの量。

MiB

shmem

tmpfs を含む共有メモリのサイズ。

MiB

vmbal

(32 ビットシステムのみ) 仮想メモリエリアのバランスメモリの量。

MiB

SWP (スワップ領域)

tot

スワップ領域の合計サイズ。

GiB/MiB

free

空きスワップ領域のサイズ。

GiB/MiB

swcac

スワップアウトされたが、キャッシュにも残っているメモリの量。

MiB

vmcom

アプリケーションによってコミットされた仮想メモリの総量。

GiB/MiB

vmlim

コミットできる仮想メモリの量の上限。

GiB/MiB

PAG (ページングアクティビティ)

scan

サンプリング間隔中にカーネルがメモリを再利用するためにスキャンしたページの数。

ページ/秒

steal

スキャン後にカーネルが正常に再利用したページの数。

ページ/秒

stall

メモリ不足のためにカーネルがページ再利用を待って停止した回数。

回/秒

swin

スワップ領域から物理メモリにスワップインされたページの数。

ページ/秒

swout

物理メモリからスワップ領域にスワップアウトされたページの数。

ページ/秒

DSK (ディスク)

LVM (論理ボリューム)

busy

ディスクがビジー状態だった時間の割合。100% の値はディスクが飽和状態であることを示します。

%

read/write

サンプリング間隔中に完了した読み取り/書き込みリクエストの数。

回/秒

KiB/r/KiB/w

読み取り/書き込みリクエストあたりの平均データサイズ。

KB

Msec/r/Msec/w

キューイング時間とサービス時間を含む、読み取り/書き込みリクエストあたりの平均時間。

ミリ秒

avio

キューイング時間を除く、I/O リクエストの平均サービス時間。

ミリ秒

NET (ネットワーク)

transport

TCP および UDP レイヤーのパケット統計。

パケット/秒

network

受信、送信、転送されたパケットを含む IP レイヤーのパケット統計。

パケット/秒

*if*

各ネットワークインターフェイスのアクティビティを表示します。

-

pcki/pcko

インターフェイスによって受信/送信されたデータパケットの数。

パケット/秒

spdi/spdo

インターフェイスがデータを受信/送信する速度。

Mbps

erri/erro

インターフェイスでの受信/送信中に発生したエラーの数。

回/秒

drpi/drpo

インターフェイスでの受信/送信中にドロップされたデータパケットの数。

回/秒

プロセスレベルの詳細

ビュー

メトリック

説明

単位

汎用ビュー (デフォルト)

PID

プロセス ID。システム内の一意のプロセス識別子。

-

S

プロセスステータス。R-実行中、S-割り込み可能なスリープ、D-割り込み不可能なスリープ、Z-ゾンビ、E-終了。

-

CPU%

CPU 使用率。

%

MEM%

メモリ使用量。

%

THR

スレッド数。

単位

PAG

メジャーページフォールト。プロセスがディスクからメモリにデータを読み込む必要があった回数。これはディスク I/O 圧力の指標です。

回/秒

CMD

コマンド名。プロセスの実行可能ファイル名。c キーを押すと、完全なコマンドラインが表示されます。

-

メモリビュー

VSIZE

仮想メモリサイズ。プロセスによって要求された仮想アドレス空間の合計サイズ。

KiB/MiB/GiB

RSIZE

常駐セットサイズ。プロセスが現在占有している物理メモリの実際の量。

KiB/MiB/GiB

SHR

共有メモリサイズ。

KiB/MiB/GiB

RGROW

常駐メモリの増加。正の数はメモリ消費が増加していることを示します。負の数は減少していることを示します。

KiB

VGROW

仮想メモリの増加。

KiB

ディスクビュー

DSK%

ディスクアクティビティの割合。プロセスのディスク I/O によって引き起こされる、合計ディスクビジー時間の割合。

%

RDDSK/WRDSK

ディスクデータの読み取り/書き込み。

KiB/MB

WCANCL

キャンセルされた書き込み量。プロセスがページキャッシュに書き込んだが、ディスクに同期される前に削除されたデータの量。

KiB/MB

ネットワークビュー

NET%

ネットワークアクティビティの割合。すべてのプロセスからの合計ネットワークトラフィックのうち、このプロセスによって生成される割合。

%

TCPSND/TCPRCV

送信/受信した TCP データ。

KiB/MB

UDPSND/UDPRCV

送信/受信した UDP データ。

KiB/MB

本番環境での適用

  • ディスク容量の計画: atop ログのサイズは、収集頻度、システムプロセスの数、および保持期間によって異なります。必要な容量を見積もるには、ls -lh /var/log/atop/ コマンドで単一のログファイルのサイズを確認し、そのサイズに LOGGENERATIONS の値を掛け合わせます。

  • 監視間隔: より詳細な分析が必要なシナリオでは、デフォルト構成の LOGINTERVAL を 30 秒に変更できます。ただし、間隔を短くすると、ディスク I/O と atop プロセスの CPU オーバーヘッドが増加することに注意してください。インスタンスのワークロードに基づいてこの値を調整してください。

よくある質問

  1. atop -r を実行すると stat raw file: No such file or directory というエラーが表示されるのはなぜですか?

    このエラーは、atop が指定された日付のログファイルを見つけられないことを意味します。考えられる理由は次のとおりです:

    1. 指定された日に atop サービスが実行されていませんでした。

    2. ログローテーションポリシーによりログファイルが削除されました (LOGGENERATIONS で設定された保持期間を超えました)。

    3. 未来の日付をクエリしています。

      /var/log/atop ディレクトリで利用可能なログファイルのリストを確認してください。

  2. atop のディスク容量使用量を減らすにはどうすればよいですか?

    構成ファイルを変更することで、ディスク容量の使用量を減らすことができます。変更後は atop サービスを再起動することを忘れないでください。

    1. ログ保持期間を短縮する: 構成ファイル内の LOGGENERATIONS の値を、たとえば 28 から 14 に下げます。

    2. 収集頻度を減らす: 構成ファイル内の LOGINTERVAL の値を、たとえば 600 から 1200 に増やします。

  3. atop のインタラクティブモードで n キーを押しても、プロセスごとのネットワークトラフィックが表示されないのはなぜですか?

    デフォルトでは、atop はプロセスごとのネットワークトラフィックを追跡しません。これを有効にするには、netatop カーネルモジュールをインストールしてロードする必要があります。

    1. カーネル開発パッケージと必要なコンパイルツールをインストールします。

      sudo yum install -y kernel-devel dkms elfutils-libelf-devel
    2. 指定されたディレクトリに netatop のソースコードをダウンロードします。

      cd /usr/src/ && sudo wget https://www.atoptool.nl/download/netatop-3.2.2.tar.gz
    3. ソースコードを解凍し、ソースディレクトリに移動します。

      sudo tar -zxvf netatop-3.2.2.tar.gz && cd netatop-3.2.2
    4. ソースコードからモジュールとデーモンをビルドしてインストールします。

      sudo make && sudo make install
    5. netatop サービスを開始します。

      sudo systemctl start netatop
    6. netatop が正常にインストールされたことを確認します。

      atop を実行し、n を押します。プロセスの詳細リストに NET 列が含まれていれば、インストールは成功です。

      image