リアルタイムプロセス監視
ps コマンドは特定の時点でのプロセスのスナップショットを提供しますが、時にはプロセスを継続的に監視する必要があります。このステップでは、リアルタイムのプロセス監視ツールを探索します。
top コマンドの使用
top コマンドは、実行中のシステムの動的なリアルタイムビューを提供します。システムの概要情報と、Linux カーネルによって現在管理されているプロセスまたはスレッドのリストを表示します。
次のコマンドを実行します。
top
以下のような表示がされます。
top - 17:15:23 up 30 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 31 total, 1 running, 30 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1975.1 total, 1558.7 free, 180.4 used, 236.1 buff/cache
MiB Swap: 975.0 total, 975.0 free, 0.0 used. 1651.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8988 3208 2556 S 0.0 0.2 0:00.07 init.sh
22 root 20 0 39528 8596 6088 S 0.0 0.4 0:00.20 supervisord
23 root 20 0 12128 6788 5864 S 0.0 0.3 0:00.00 sshd
...
出力は 2 つの部分に分かれています。
- システム概要 (上部 5 行)
- プロセスリスト (デフォルトでは CPU 使用率でソートされています)
top を終了するには、q キーを押します。
top の出力の理解
システム概要には以下の情報が表示されます。
- 稼働時間と負荷平均
- 状態別のタスク数 (実行中、睡眠中、停止中、ゾンビ)
- CPU 使用率の内訳
- メモリとスワップの使用状況
プロセスリストには以下の情報が表示されます。
- PID: プロセス ID
- USER: ユーザー所有者
- PR: 優先度
- NI: ナイス値
- VIRT: 使用されている仮想メモリ
- RES: 使用されている常駐メモリ
- SHR: 共有メモリ
- S: プロセスの状態
- %CPU: CPU 使用率
- %MEM: メモリ使用率
- TIME+: 使用された CPU 時間
- COMMAND: コマンド名
top での対話型コマンド
top が実行中の間、さまざまなキーボードコマンドを使用して対話することができます。
M を押すと、メモリ使用率でソートされます
P を押すと、CPU 使用率でソートされます
k を押してから PID を入力すると、プロセスを終了できます
h を押すと、ヘルプが表示されます
top を実行中に M を押して、メモリ使用率でソートされたプロセスを確認してみてください。
watch コマンドと ps の組み合わせ
リアルタイム監視の別の方法は、watch コマンドと ps を組み合わせることです。これにより、コマンドが定期的に実行され、出力が表示されるため、時間の経過に伴う変化を確認できます。
watch -n 1 'ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -n 6'
これは 1 秒ごとに更新され、CPU を最も多く消費する上位 5 つのプロセスを表示します。
watch を終了するには、Ctrl+C を押します。
ps と watch のようなユーティリティを組み合わせることで、システムのプロセスをリアルタイムで監視する強力な機能が得られます。