はじめに
top
, htop
とかtop
系のコマンドにある、atop
コマンドを使ってみる。
https://packages.ubuntu.com/noble/admin/atop
環境
Windows 11 Professional
WSL2 Ubuntu 24.04 LTS
atopのインストール
sudo apt-get install atop
ログ
sudo apt-get install atop
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libgl1-amber-dri libllvm19 libxcb-damage0 mesa-utils-bin xbitmaps
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
atop
0 upgraded, 1 newly installed, 0 to remove and 41 not upgraded.
Need to get 209 kB of archives.
After this operation, 605 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu noble/universe amd64 atop amd64 2.10.0-2ubuntu2 [209 kB]
Fetched 209 kB in 2s (132 kB/s)
Selecting previously unselected package atop.
(Reading database ... 89565 files and directories currently installed.)
Preparing to unpack .../atop_2.10.0-2ubuntu2_amd64.deb ...
Unpacking atop (2.10.0-2ubuntu2) ...
Setting up atop (2.10.0-2ubuntu2) ...
Created symlink /etc/systemd/system/timers.target.wants/atop-rotate.timer → /usr/lib/systemd/system/atop-rotate.timer.
Created symlink /etc/systemd/system/multi-user.target.wants/atopacct.service → /usr/lib/systemd/system/atopacct.service.
Created symlink /etc/systemd/system/multi-user.target.wants/atop.service → /usr/lib/systemd/system/atop.service.
Processing triggers for man-db (2.12.0-4build2) ...
インストール確認
Version: 2.10.0 - 2024/01/04 10:52:30 <gerlof.langeveld@atoptool.nl>
atopを使う
各プロセスやネットワーク状況が確認できる。

リソース状況
画面中央より上に表示されているものについて調べてみた。
これは atop
のシステム全体のリソース使用状況を示すセクションで、各リソース(プロセス、CPU、メモリ、スワップ、ページング、ディスク)についての統計情報が表示されている。
それぞれの内容について表にまとめた野で以下に記載する。
PRC (Process) - プロセス統計
項目 | 説明 |
---|
sys | システムモード(カーネル)の CPU 使用時間 |
user | ユーザーモードの CPU 使用時間 |
#proc | 現在アクティブなプロセス数 |
#tslpu | スリープ状態のスレッド数 |
#tidle | アイドル状態のスレッド数 |
#exit | 終了したプロセス数 |
CPU - CPU 使用状況
項目 | 説明 |
---|
sys | カーネルモード(システム)の CPU 使用率 |
user | ユーザーモードの CPU 使用率 |
irq | 割り込み処理(IRQ)に使用された CPU 割合 |
idle | アイドル状態の CPU 時間(%) |
wait | I/O 待機(ディスクやネットワークの処理待ち)による CPU 時間(%) |
curf | 現在の CPU クロック周波数(GHz) |
CPL (Load Average) - システム負荷
項目 | 説明 |
---|
numcpu | システム内の CPU コア数 |
avg1 | 1分間のロードアベレージ(CPU負荷の平均) |
avg5 | 5分間のロードアベレージ |
avg15 | 15分間のロードアベレージ |
csw | コンテキストスイッチ(CPUがタスクを切り替えた回数) |
intr | 割り込み(ハードウェアやソフトウェアが CPU に介入した回数) |
MEM (Memory) - メモリ使用状況
項目 | 説明 |
---|
tot | 総メモリ容量 |
free | 空きメモリ量 |
avail | 利用可能なメモリ(キャッシュなどを考慮) |
cache | ページキャッシュとして使用されているメモリ |
buff | バッファとして使用されているメモリ |
slab | カーネルが使用するスラブメモリ(キャッシュなど) |
MEM (Shared Memory) - 共有メモリ
項目 | 説明 |
---|
numnode | NUMA ノード数(メモリ管理単位) |
shmem | 共有メモリの合計量 |
shrss | 共有メモリの Resident Set Size(プロセスが使用中の物理メモリ) |
shswp | 共有メモリのスワップ領域使用量 |
pgtab | ページテーブルのメモリ使用量 |
anthp | HugePages(大きなメモリページ)の使用量 |
SWP (Swap) - スワップ使用状況
項目 | 説明 |
---|
tot | 総スワップ容量 |
free | 空きスワップ容量 |
swcac | スワップキャッシュ(ディスクに書き出される前のスワップデータ) |
zstor | 圧縮スワップ領域の使用量 |
vmcom | 仮想メモリのコミット量(実際に使用する予定のメモリ量) |
vmlim | 仮想メモリの最大利用可能量 |
PAG (Paging) - ページング統計
項目 | 説明 |
---|
migrate | メモリページの移動数(NUMA ノード間) |
pgin | メモリへのページ読み込み回数 |
pgout | メモリからのページ書き出し回数 |
swin | スワップイン(スワップ領域からメモリに戻ったページ数) |
swout | スワップアウト(メモリからスワップ領域に書き出されたページ数) |
oomkill | Out-Of-Memory Killer により強制終了されたプロセス数 |
DSK (Disk) - ディスクI/O状況
項目 | 説明 |
---|
sde / sdc | ディスクデバイス名 |
busy | ディスクの使用率(%) |
read | 読み込み回数 |
write | 書き込み回数 |
MBw/s | データ転送速度(MB/秒) |
avio | 平均 I/O 応答時間(ms) |
プロセス状況
次は画面中央より下に表示されている情報についてまとめる。
項目名 | 説明 |
---|
PID | プロセスID(各プロセスを識別する番号) |
SYSCPU | カーネルモードでの CPU 使用時間(システム処理) |
USRCPU | ユーザーモードでの CPU 使用時間(アプリケーション処理) |
RDELAY | ディスクやネットワーク I/O の待機時間(読み込み遅延) |
BDELAY | I/O バッファの遅延時間(書き込み待機時間) |
VGROW | 仮想メモリ(VIRT)の増加量(KB単位) |
RGROW | 物理メモリ(RES)の増加量(KB単位) |
RUID | プロセスの実行ユーザー ID(実ユーザー) |
EUID | プロセスの有効ユーザー ID(権限を持つユーザー) |
ST | スケジューラの状態(例: 0=通常、1=リアルタイムなど) |
EXC | 例外発生回数(0以外の場合、エラーや割り込みの可能性あり) |
THR | スレッド数(そのプロセス内でのアクティブなスレッド数) |
S | プロセスの状態(R=実行中、S=スリープ、D=ディスク待ち など) |
CPUNR | 割り当てられた CPU コア番号 |
CPU | プロセスが使用している CPU 使用率(%) |
CMD | 実行中のコマンド名(プロセスの名前) |
top, htop, atopの違いについて
top
, htop
, atop
はいずれも Linux のシステム監視ツールですが、それぞれ特徴や用途が異なります。
topについて
特徴
- Linux に標準で搭載されているプロセス管理ツール。
- CPU使用率、メモリ使用量、実行中のプロセスをリアルタイムで表示。
- コマンド実行後にオプションキーを押すことで、ソートやフィルタリングが可能。
メリット
- ほとんどの Linux 環境でデフォルトで利用可能。
- 軽量で最低限のシステム負荷。
デメリット
- UI がシンプルで視認性が低い。
- プロセスの詳細情報や色分けがなく、直感的な操作が難しい。
htopについて
特徴
top
の強化版で、インタラクティブな操作が可能。- CPUやメモリ使用率が棒グラフで表示され、視認性が高い。
- カラフルなUIで直感的にプロセス管理ができる。
- マウス操作が可能(
top
はキーボード操作のみ)。 F
キーでフィルタやソートを簡単に適用できる。
メリット
top
よりも視認性が良く、操作が直感的。- プロセスの並び替え、検索、フィルタが容易。
- ツリービューでプロセスの親子関係を表示できる。
デメリット
top
に比べて若干のリソースを消費する。- 一部の最小構成のシステムではインストールが必要。
atop
特徴
top
や htop
に比べ、より詳細なシステム情報を表示。- CPU、メモリだけでなく、ディスク I/O やネットワーク使用状況 も監視可能。
- ロギング機能があり、過去のシステム状態を分析可能。
atop -r
コマンドでログをリプレイして過去の状態を再現できる。
メリット
- I/O やネットワークの詳細情報を表示できる。
- ロギング機能により、長期間のシステム監視が可能。
- 負荷のかかったプロセスを強調表示するため、ボトルネックの特定が容易。
デメリット
top
や htop
よりも情報量が多く、初心者には見づらい。top
や htop
よりもメモリやCPUを少し多く消費する。- 標準ではインストールされていないため、手動で導入が必要。
どれを使うべきか?
ツール | メリット | 適した用途 |
---|
top | 軽量でどの環境でも利用可能 | すぐに簡単にシステム負荷を確認したいとき |
htop | 視認性が高く操作しやすい | インタラクティブにプロセスを管理したいとき |
atop | I/Oやネットワークの詳細も確認可能 | システム全体の負荷解析やボトルネック調査 |
シンプルな監視なら top
、より見やすく詳細に確認したいなら htop
、ディスクやネットワーク負荷も含めて監視するなら atop
がよさそうか。
参考
おわりに
top
の系譜のコマンドを使用し調査してみた。
サーバのボトルネック調査等で使用していきたい。