FreeBSDのtopコマンドの使い方
FreeBSDのtopコマンドの使い方を調べたときの覚書。
Gemini 2.5 Proと対話。
環境: FreeBSD 14.3-RELEASE-p2
top起動。
# top
FreeBSD 公式サイトのmanページ: top(1)
よく使うキー
- P : CPUコアごとの統計表示切り替え(Linuxは1)
- i : アイドルプロセスの表示切り替え
- o : ソート順の変更 (メモリ順は res、CPU使用率順は wcpu、プロセスID順はpid)
Linuxでは[P](CPU使用率順)と[]M(メモリ順)。 - H : スレッド表示の切り替え。
- T : スレッドID(TID)の列を表示。
表示の更新・終了
- space - 表示を更新: 即座に最新の情報に更新
- ? - ヘルプの表示
- q - 終了
表示内容のフィルタリング・絞り込み
- / : コマンド名でフィルタ
コマンド名でプロセスを絞り込めます。
例えば / を押した後に nginx と入力すると、nginx という名前のプロセスだけが表示されます。
+ を入力すると全てのフィルタを解除します。 - u : ユーザーでフィルタ
特定のユーザーが実行しているプロセスだけを表示します。
u を押した後に www と入力すると、www ユーザーのプロセスだけが表示されます。
ユーザー名を入力せずにEnterを押すと、全ユーザーの表示に戻ります。 - p : PIDでフィルタ
特定のプロセスID(PID)を持つプロセスだけを表示します。
p を押した後にPIDを入力します。
+ を入力するとフィルタを解除します。 - J : Jailでフィルタ
[(FreeBSD Jails機能を使用している場合) 特定のJail内で実行されているプロセスだけを表示します。
+ を入力するとフィルタを解除します。
表示項目の切り替え(トグル)
- a : プロセス引数の表示切り替え
COMMAND列に、コマンド名だけを表示するか、コマンドの引数を含めた完全なコマンドラインを表示するかを切り替えます。 - C : CPU使用率の表示モード切り替え
CPU使用率の表示を、重み付けされた最近のCPU使用率(WCPU、デフォルト)と、プロセス起動からの累積CPU使用率(CPU)とで切り替えます。 - H : スレッド表示の切り替え
プロセス単位の表示と、スレッド単位の表示を切り替えます。
マルチスレッドのプログラムを詳細に見たい場合に便利です。 - i または I : アイドルプロセスの表示切り替え
CPUを全く使用していない(アイドル状態の)プロセスの表示/非表示を切り替えます。
CPUを使っているプロセスだけに注目したい場合に便利です。 - j : Jail ID列の表示切り替え
(FreeBSD Jails機能を使用している場合) プロセスリストにJail ID(JID)の列を表示するかどうかを切り替えます。 - m : 表示モードの切り替え (CPU ↔ IO)
表示モードをCPU使用状況(デフォルト)とディスクI/O状況の間で切り替えます。
I/Oモードにすると、どのプロセスがディスクの読み書きを多く行っているかを確認できます。 - P : CPUコアごとの統計表示切り替え
画面上部のCPU統計を、全コアの合計値で表示するか、CPUコアごとに(CPU0, CPU1...のように)表示するかを切り替えます。 - S : システムプロセスの表示切り替え
カーネルなどのシステムプロセスの表示/非表示を切り替えます。 - T : スレッドID列の表示切り替え
Hキーでスレッド表示にしているときに、スレッドID(TID)の列を表示するかどうかを切り替えます。 - t : top自身のプロセスの表示切り替え
topコマンド自身のプロセスの表示/非表示を切り替えます。 - w : スワップ使用量列の表示切り替え
各プロセスのスワップメモリ使用量(SWAP列)の表示/非表示を切り替えます。 - z : アイドルプロセスの表示切り替え (Kernel Idle)
idleという名前のカーネルアイドルプロセスの表示/非表示を切り替えます。
プロセスの操作
- k : プロセスをkill(終了させる)
指定したプロセスにシグナルを送ります。
k を押した後、対象のPID、次に送るシグナル番号(15: 通常終了, 9: 強制終了)を入力します。 - r : プロセスの優先度を変更 (renice)
プロセスの実行優先度(Nice値)を変更します。
r を押した後、対象のPID、次に新しいNice値を入力します。
表示設定の変更
- o : ソート順の変更
プロセスの並び順を変更します。
o を押した後にソートの基準となる列の名前(例: res でメモリ使用量順、time でCPU時間順)を入力します。 - s : 更新間隔の変更
画面が自動更新される間隔を秒単位で変更します。
pstreeのコマンド
ダウンタイムなしで更新するときにはpstreeを使う。
nginxのプロセスを表示。
# pstree -s nginx
別コンソールでnginxプロセスを監視(1秒ごとに再実行と再描画)。
# while true; do clear; pstree -s nginx; sleep 1; done
topの後継ツール
topを進化させたhtop, btopというツールがある。
htopを使えばLinux, FreeBSDの環境で一貫した操作で使えそう。
pstreeもインストールしなくて済みそう。