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]コマンドを実行して対話モードに入ります。コマンドの出力には、システムリソースの概要セクションとプロセスの詳細セクションの 2 つのセクションが含まれます。# デフォルト設定で表示します (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 が完全にアイドル状態だった時間の割合。 | % | |
| CPU がディスク I/O の完了を待っている間にアイドル状態だった時間の割合。 | % | |
| 仮想 CPU が物理 CPU を待っていた時間の割合 (ホストまたは他の VM によって盗まれた時間)。 | % | |
| 仮想マシンの実行に費やされた CPU 時間の割合。 | % | |
| CPU の平均実行周波数を最大周波数の割合として示したもの。 | % | |
CPL (CPU 負荷) |
| 過去 1 分、5 分、15 分間のシステム平均負荷。 | - |
| サンプリング間隔中のコンテキストスイッチの数。 | 回/秒 | |
| サンプリング間隔中に発生した割り込みの総数。 | 回/秒 | |
MEM (物理メモリ) |
| システム内の物理メモリの総量。 | GiB/MiB |
| 完全に未使用の空きメモリの量。 | GiB/MiB | |
| ファイルデータをキャッシュするためにページキャッシュとして使用されるメモリの量。 | GiB/MiB | |
| ページキャッシュ内のダーティページの量。変更されたがまだディスクに書き込まれていないページ。 | MiB | |
| ブロックデバイスのメタデータをキャッシュするためにバッファーキャッシュとして使用されるメモリの量。 | MiB | |
| カーネルが自身のデータ構造 (slab アロケータ) のために使用するメモリの量。 | 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列が含まれていれば、インストールは成功です。