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 [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
ディスクビュー / ディスクでソート
ディスクの読み書きが活発なプロセスを特定します。
n/N
ネットワークビュー / ネットワークでソート (netatop カーネルモジュールのインストールとロードが必要)
ネットワークトラフィックが多いプロセスを特定します。
a
集約ビュー
プログラムごとのすべてのスレッドまたはプロセスのリソース消費を集約します。
C
CPU でソート
最も CPU 負荷の高いプロセスを特定します。
h
ヘルプを表示
すべてのキーボードショートカットを一覧表示します。
q
終了
インタラクティブモードを終了します。
履歴メトリクスの表示
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 の設定ファイルを変更し、ロギング頻度、保持期間、およびストレージパスを調整します。
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は古いログを自動的に削除します。LOGPATH:ログ保存パス。デフォルト:/var/log/atop。新しいディレクトリが存在し、atop に書き込み権限があることを確認してください。
atopサービスを再起動して変更を適用します:sudo systemctl restart atop
メトリックレポートの生成
atopsar は atop のバイナリログファイルからデータを抽出し、システムパフォーマンスレポートを生成します。
例
1 分間 (5 秒間隔で 12 サンプル) の CPU 使用率レポートを生成するには:
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 時間。 | % | |
| ハードウェア割り込み (irq) とソフトウェア割り込み (softirq) の処理に費やされた CPU 時間。 | % | |
| 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 | |
| インターフェースでの受信/送信エラー。 | カウント/秒 | |
| インターフェースでの受信/送信中にドロップされたパケット。 | カウント/秒 |
プロセスレベルの詳細
ビュー | メトリック | 説明 | 単位 |
汎用ビュー (デフォルト) |
| 一意のプロセス識別子。 | - |
| R ー 実行中、S ー 割り込み可能なスリープ、D ー 割り込み不可能なスリープ、Z ー ゾンビ、E ー 終了。 | - | |
| CPU 使用率のパーセンテージ。 | % | |
| メモリ使用率のパーセンテージ。 | % | |
| スレッド数。 | 個 | |
| メジャーページフォルト — ディスクからメモリへの読み取り。ディスク I/O 圧力を示します。 | カウント/秒 | |
| 実行可能ファイル名。c を押すと、完全なコマンドラインが表示されます。 | - | |
メモリビュー |
| プロセスによって要求された合計仮想アドレス空間。 | KiB/MiB/GiB |
| プロセスが現在占有している物理メモリ。 | KiB/MiB/GiB | |
| 共有メモリサイズ。 | KiB/MiB/GiB | |
| 常駐メモリの増加量。正 = 増加、負 = 減少。 | KiB | |
| 仮想メモリの増加量。 | KiB | |
ディスクビュー |
| このプロセスによって引き起こされる合計ディスクビジー時間の割合。 | % |
| 読み取り/書き込みされたディスクデータ。 | KiB/MB | |
| ページキャッシュに書き込まれたが、ディスクに同期される前に削除されたデータ。 | KiB/MB | |
ネットワークビュー |
| このプロセスによって生成された合計ネットワークトラフィックの割合。 | % |
| 送信/受信された TCP データ。 | KiB/MB | |
| 送信/受信された UDP データ。 | KiB/MB |
本番環境への適用
ディスク領域の計画:
atopのログサイズは、収集頻度、プロセス数、および保持期間によって変動します。ls -lh /var/log/atop/コマンドで単一のログファイルサイズを確認し、LOGGENERATIONSの値を掛けて合計使用量を見積もります。モニタリング間隔: 詳細な分析を行うには、
LOGINTERVALを 30 秒に設定します。間隔を短くすると、atopのディスク I/O と 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-develnetatop ソースコードをダウンロードします。
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列が表示されれば成功です。