はじめに
Linuxサーバーの安定運用やトラブルシューティングにおいて、即座にシステムの稼働状況を把握できる基本ツールが top コマンドです。本記事では、日常的なリソース監視に役立つ標準画面のメトリクスの読み解き方から、実務のシェルスクリプトやパイプライン処理で真価を発揮する各種オプションの応用例まで、体系的に解説します。
topコマンドの基本操作とバッチモード(-b)を活用したスナップショット取得
リアルタイムに対話型インターフェースでシステム全体の負荷状況、メモリ消費量、プロセスの挙動を監視する用途において、top は最も標準的に用いられるユーティリティです。
コンソール上で画面更新が繰り返されるインタラクティブ表示とは異なり、ログ保存やスクリプト連携ではエスケープシーケンスを排除するバッチモード(-b)と更新回数の指定(-n 1)を組み合わせるアプローチが非常に強力です。head -n 15 を介して上位行のみを切り出すことで、瞬時のロードアベレージや主要リソース配分をコンパクトなスナップショットとして抽出できます。
⚙️ 【主要コマンドラインオプション一覧】
-b : ターミナルの制御文字を出力せず、標準出力へプレーンテキストとして流し込むバッチモードを有効化します。-n : 指定したサイクル数だけ画面情報を更新した後、プロセスを自動終了させます。-d : リフレッシュ間隔(更新遅延時間:秒単位)をカスタマイズします。-p : 監視対象とするプロセスID(PID)をピンポイントで絞り込んで追跡します。-u : 指定したユーザーアカウントに紐づくプロセス群のみを抽出して表示します。-c : プロセスコマンド名だけでなく、起動時の絶対パスや引数を含む完全なコマンドラインを表示します。

特定ユーザーに紐づくプロセスのフィルタリング監視
サーバー上で特定のアカウントが消費しているリソースを集中的に点検したい場合は、-u オプションに対象ユーザー名を渡すことで効率的な絞り込みが可能です。
管理者権限で稼働しているバックグラウンドサービスや重要デーモンの負荷状況を調査するには、top -b -n 1 -u root | head -n 15 を実行し、root 所有の主要プロセス群を上位15行に限定して素早く取得します。

現在ログインしているセッションのアカウントを動的に割り当てて検証したい場面では、コマンド置換 $(whoami) を組み込む手法が有効です。top -b -n 1 -u $(whoami) | head -n 15 を実行すれば、カレントユーザーがキックしたタスクの一覧とCPU・メモリ消費状況のみを無駄なく一覧化できます。

プロセスID(PID)の個別追跡と更新インターバルの調整
特定ターゲットを集中的にプロファイリングする場合、まず対象の識別番号を取得します。以下のコマンド PID=$(pgrep -f systemd | head -n 1 || echo 1) により、システムの中核を担う systemd のPIDを安全にシェル変数へ格納します。

続けて top -b -n 2 -d 1 -p $PID を投入すると、変数 $PID で指定した対象プロセスのみを抽出しつつ、1秒間隔(-d 1)で計2回(-n 2)の状態遷移をバッチ形式(-b)で追跡できます。
この手法を用いれば、CPU使用率やメモリフットプリントの微小な推移、短時間の負荷変動をノイズなく定点観測することが可能です。

メモリ(RES)およびCPU負荷に応じたソートとボトルネック検出
メモリ消費量(%MEM)の降順でタスクを並び替えるには、top -b -n 1 -o %MEM | head -n 15 を利用します。
物理メモリ領域(RES: Resident Set Size)を著しく圧迫し、将来的なOOM Killer(Out of Memory)の発動リスクを孕んでいるプロセスを初動調査で特定する際に極めて有効なコマンドです。

CPUコアへの計算負荷(%CPU)を軸にプロセスを精査したいケースでは、top -b -n 1 -o %CPU | head -n 15 を投入します。
プロセッサの演算時間を独占し、システム全体のロードアベレージを高騰させているボトルネックプロセスの早期発見に威力を発揮します。

Ubuntu環境における top コマンドの必須フラグとリソース分析手法について一通り押さえました。
現場の障害対応や定期的なモニタリング作業にこれらのノウハウを取り入れ、健全なインフラ運用の維持に役立ててください。