atop ツールは、インタラクティブなインターフェイスを通じてシステムのステータスに関するリアルタイムのインサイトを提供します。また、バックグラウンドサービスとして実行し、指定された頻度でシステムとプロセスのアクティビティのスナップショットを記録することもできます。これらのスナップショットはバイナリログとして保存され、システムの問題を追跡および診断するのに役立ちます。
atop のインストール
atop をインストールします。
Alibaba Cloud Linux 2/3、CentOS 7/8、または Fedora
# パッケージを更新します。 sudo yum update -y # atop をインストールします。 sudo yum install atop -yUbuntu または Debian
# パッケージを更新します。 sudo apt update -y # atop をインストールします。 sudo apt install atop -yCentOS Stream 9 または Rocky Linux 9
# パッケージを更新します。 sudo dnf update -y # EPEL リポジトリをインストールします。 sudo dnf install epel-release -y # atop をインストールします。 sudo dnf install atop -yopenSUSE
# パッケージを更新します。 sudo zypper update -y # atop をインストールします。 sudo zypper install atop atop-daemon -yatop サービスを開始します。
sudo systemctl start atopatop サービスが正常に開始されたことを確認します。
sudo systemctl status atopを実行してサービスステータスを確認します。active (running)ステータスは成功を示します。
atop を使用したリアルタイムメトリックの表示
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、およびネットワークリソースの使用状況を要約します。

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

インタラクティブモードでは、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ログはバイナリファイルです。cat、less、vimなどのテキストエディターで開くと、判読不能な文字が表示されます。
履歴ログの読み取り
履歴ログファイルを読み取ります。
atop -r <log_file>コマンドを使用して、特定のログファイルをロードします。# 今日のログを表示します。atop は当日のログファイルを自動的に見つけます。 atop -r # 特定の日付のログを表示します。 atop -r /var/log/atop/atop_YYYYMMDDログ内の特定の時点に移動します。
ログファイルをロードすると、インターフェイスにはそのファイルの最初のスナップショットが表示されます。
tを押して、次のスナップショットにジャンプします。T(大文字) を押して、前のスナップショットにジャンプします。bを押し、HH:MM形式で時刻を入力して、その時刻に直接ジャンプします。
atop のロギング動作の最適化
履歴ログを分析する際、デフォルトのロギング頻度 (10 分に 1 回) が特定の問題に対して広すぎたり、デフォルトの 28 日間の保持期間がニーズに合わなかったりすることがあります。構成ファイルを変更することで、atop のバックグラウンドロギング頻度、保持期間、およびストレージパスを調整できます。
vimまたは別のテキストエディターを使用して構成ファイルを開きます。RHEL およびその派生 (Alibaba Cloud Linux、CentOS、Fedora、Rocky Linux) の場合:
sudo vim /etc/sysconfig/atopDebian およびその派生 (Ubuntu、Debian) と openSUSE の場合:
sudo vim /etc/default/atop
デフォルトの構成ファイルには、次の内容が含まれています:
LOGOPTS="" LOGINTERVAL=600 LOGGENERATIONS=28 LOGPATH=/var/log/atopLOGOPTS: 追加のロギングオプション。たとえば、-Lを設定すると、/var/log/atop/atop_currentにシンボリックリンクが作成され、ログローテーション中に最新のログファイルにすばやくアクセスできるようになります。LOGINTERVAL: ロギングのサンプリング間隔 (秒単位)。デフォルトは600(10 分) で、atopが 10 分ごとにシステムスナップショットを記録することを意味します。LOGGENERATIONS: ログファイルのライフサイクル (日数)。デフォルトは28で、atopが 28 日より古いログファイルを削除することを意味します。LOGPATH: ログファイルのストレージパス。デフォルトは/var/log/atopです。このパスを変更するには、新しいディレクトリが存在し、atop プロセスに書き込み権限があることを確認してください。
変更を適用するには、
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 (プロセスの合計) |
| サンプリング間隔中にすべてのプロセスがカーネルモードで消費した合計 CPU 時間。 | 秒 |
| サンプリング間隔中にすべてのプロセスがユーザーモードで消費した合計 CPU 時間。 | 秒 | |
| システム内のプロセスの総数。 | 単位 | |
| 実行状態にあるスレッドの平均数。 | 単位 | |
| 割り込み可能なスリープ状態にあるスレッドの数。 | 項目 | |
| 割り込み不可能なスリープ状態にあるスレッドの数。 | 単位 | |
| ゾンビプロセスの数。 | 単位 | |
| サンプリング間隔中に clone システムコールによって作成された新しいプロセスまたはスレッドの数。 | 回/秒 | |
| サンプリング間隔中に終了したプロセスの数。 | 回/秒 | |
CPU/cpu (合計/コアごと) |
| CPU がカーネルモードで費やした時間の割合。 | % |
| CPU がユーザーモードで費やした時間の割合。 | % | |
| CPU がハードウェア割り込み (irq) とソフトウェア割り込み (softirq) の処理に費やした時間の割合。 | % | |
| CPU が完全にアイドル状態だった時間の割合。 | % | |
| ディスク I/O の完了を待っている間に CPU がアイドル状態だった時間の割合。 | % | |
| 仮想 CPU が物理 CPU を待っていた時間の割合 (ホストまたは他の VM によって盗まれた時間)。 | % | |
| 仮想マシンの実行に費やされた CPU 時間の割合。 | % | |
| CPU の平均実行周波数を最大周波数のパーセンテージで表したもの。 | % | |
CPL (CPU 負荷) |
| 過去 1 分、5 分、15 分間のシステムの平均負荷。 | - |
| サンプリング間隔中のコンテキストスイッチの数。 | 回/秒 | |
| サンプリング間隔中に発生した割り込みの総数。 | 回/秒 | |
MEM (物理メモリ) |
| システム内の物理メモリの総量。 | GiB/MiB |
| 完全に未使用の空きメモリの量。 | GiB/MiB | |
| ファイルデータをキャッシュするためのページキャッシュとして使用されるメモリの量。 | GiB/MiB | |
| ページキャッシュ内のダーティページの量。変更されたがまだディスクに書き込まれていないページ。 | MiB | |
| ブロックデバイスのメタデータをキャッシュするためのバッファーキャッシュとして使用されるメモリの量。 | MiB | |
| カーネルが自身のデータ構造 (スラブアロケータ) のために使用するメモリの量。 | MiB | |
| tmpfs を含む共有メモリのサイズ。 | MiB | |
| (32 ビットシステムのみ) 仮想メモリエリアのバランスメモリの量。 | MiB | |
SWP (スワップ領域) |
| スワップ領域の合計サイズ。 | GiB/MiB |
| 空きスワップ領域のサイズ。 | GiB/MiB | |
| スワップアウトされたが、キャッシュにも残っているメモリの量。 | MiB | |
| アプリケーションによってコミットされた仮想メモリの総量。 | GiB/MiB | |
| コミットできる仮想メモリの量の上限。 | GiB/MiB | |
PAG (ページングアクティビティ) |
| サンプリング間隔中にカーネルがメモリを再利用するためにスキャンしたページの数。 | ページ/秒 |
| スキャン後にカーネルが正常に再利用したページの数。 | ページ/秒 | |
| メモリ不足のためにカーネルがページ再利用を待って停止した回数。 | 回/秒 | |
| スワップ領域から物理メモリにスワップインされたページの数。 | ページ/秒 | |
| 物理メモリからスワップ領域にスワップアウトされたページの数。 | ページ/秒 | |
DSK (ディスク) LVM (論理ボリューム) |
| ディスクがビジー状態だった時間の割合。100% の値はディスクが飽和状態であることを示します。 | % |
| サンプリング間隔中に完了した読み取り/書き込みリクエストの数。 | 回/秒 | |
| 読み取り/書き込みリクエストあたりの平均データサイズ。 | KB | |
| キューイング時間とサービス時間を含む、読み取り/書き込みリクエストあたりの平均時間。 | ミリ秒 | |
| キューイング時間を除く、I/O リクエストの平均サービス時間。 | ミリ秒 | |
NET (ネットワーク) |
| TCP および UDP レイヤーのパケット統計。 | パケット/秒 |
| 受信、送信、転送されたパケットを含む IP レイヤーのパケット統計。 | パケット/秒 | |
| 各ネットワークインターフェイスのアクティビティを表示します。 | - | |
| インターフェイスによって受信/送信されたデータパケットの数。 | パケット/秒 | |
| インターフェイスがデータを受信/送信する速度。 | Mbps | |
| インターフェイスでの受信/送信中に発生したエラーの数。 | 回/秒 | |
| インターフェイスでの受信/送信中にドロップされたデータパケットの数。 | 回/秒 |
プロセスレベルの詳細
ビュー | メトリック | 説明 | 単位 |
汎用ビュー (デフォルト) |
| プロセス ID。システム内の一意のプロセス識別子。 | - |
| プロセスステータス。R-実行中、S-割り込み可能なスリープ、D-割り込み不可能なスリープ、Z-ゾンビ、E-終了。 | - | |
| CPU 使用率。 | % | |
| メモリ使用量。 | % | |
| スレッド数。 | 単位 | |
| メジャーページフォールト。プロセスがディスクからメモリにデータを読み込む必要があった回数。これはディスク I/O 圧力の指標です。 | 回/秒 | |
| コマンド名。プロセスの実行可能ファイル名。c キーを押すと、完全なコマンドラインが表示されます。 | - | |
メモリビュー |
| 仮想メモリサイズ。プロセスによって要求された仮想アドレス空間の合計サイズ。 | KiB/MiB/GiB |
| 常駐セットサイズ。プロセスが現在占有している物理メモリの実際の量。 | KiB/MiB/GiB | |
| 共有メモリサイズ。 | KiB/MiB/GiB | |
| 常駐メモリの増加。正の数はメモリ消費が増加していることを示します。負の数は減少していることを示します。 | KiB | |
| 仮想メモリの増加。 | KiB | |
ディスクビュー |
| ディスクアクティビティの割合。プロセスのディスク I/O によって引き起こされる、合計ディスクビジー時間の割合。 | % |
| ディスクデータの読み取り/書き込み。 | KiB/MB | |
| キャンセルされた書き込み量。プロセスがページキャッシュに書き込んだが、ディスクに同期される前に削除されたデータの量。 | KiB/MB | |
ネットワークビュー |
| ネットワークアクティビティの割合。すべてのプロセスからの合計ネットワークトラフィックのうち、このプロセスによって生成される割合。 | % |
| 送信/受信した TCP データ。 | KiB/MB | |
| 送信/受信した UDP データ。 | KiB/MB |
本番環境での適用
ディスク容量の計画:
atopログのサイズは、収集頻度、システムプロセスの数、および保持期間によって異なります。必要な容量を見積もるには、ls -lh /var/log/atop/コマンドで単一のログファイルのサイズを確認し、そのサイズにLOGGENERATIONSの値を掛け合わせます。監視間隔: より詳細な分析が必要なシナリオでは、デフォルト構成の
LOGINTERVALを 30 秒に変更できます。ただし、間隔を短くすると、ディスク I/O とatopプロセスの CPU オーバーヘッドが増加することに注意してください。インスタンスのワークロードに基づいてこの値を調整してください。
よくある質問
atop -rを実行するとstat raw file: No such file or directoryというエラーが表示されるのはなぜですか?このエラーは、
atopが指定された日付のログファイルを見つけられないことを意味します。考えられる理由は次のとおりです:指定された日に
atopサービスが実行されていませんでした。ログローテーションポリシーによりログファイルが削除されました (
LOGGENERATIONSで設定された保持期間を超えました)。未来の日付をクエリしています。
/var/log/atopディレクトリで利用可能なログファイルのリストを確認してください。
atopのディスク容量使用量を減らすにはどうすればよいですか?構成ファイルを変更することで、ディスク容量の使用量を減らすことができます。変更後は
atopサービスを再起動することを忘れないでください。ログ保持期間を短縮する: 構成ファイル内の
LOGGENERATIONSの値を、たとえば28から14に下げます。収集頻度を減らす: 構成ファイル内の
LOGINTERVALの値を、たとえば600から1200に増やします。
atop のインタラクティブモードで
nキーを押しても、プロセスごとのネットワークトラフィックが表示されないのはなぜですか?デフォルトでは、
atopはプロセスごとのネットワークトラフィックを追跡しません。これを有効にするには、netatopカーネルモジュールをインストールしてロードする必要があります。カーネル開発パッケージと必要なコンパイルツールをインストールします。
sudo yum install -y kernel-devel dkms elfutils-libelf-devel指定されたディレクトリに netatop のソースコードをダウンロードします。
cd /usr/src/ && sudo wget https://www.atoptool.nl/download/netatop-3.2.2.tar.gzソースコードを解凍し、ソースディレクトリに移動します。
sudo tar -zxvf netatop-3.2.2.tar.gz && cd netatop-3.2.2ソースコードからモジュールとデーモンをビルドしてインストールします。
sudo make && sudo make installnetatopサービスを開始します。sudo systemctl start netatopnetatopが正常にインストールされたことを確認します。atopを実行し、nを押します。プロセスの詳細リストにNET列が含まれていれば、インストールは成功です。