プロセス管理

Linux topコマンド入門|システムリソースをリアルタイム監視する

Linux top システム監視

Linux topコマンド入門
システムリソースをリアルタイム監視する

topコマンドは、CPU使用率・メモリ使用量・実行中のプロセスをリアルタイムで監視できるコマンドです。サーバーの負荷状況を一目で把握できます。

こんな人向けの記事です

  • サーバーのCPU・メモリ使用状況をリアルタイムで確認したい人
  • 負荷の高いプロセスを特定したい人
  • システム監視の基本を学びたい人

Step 1topコマンドの基本

topコマンドを実行すると、システムの状態がリアルタイムで更新表示されます。

ターミナル
# topを起動
top

# 終了するには q キーを押す
デフォルトでは3秒ごとに更新

topは3秒間隔で画面を自動更新します。更新間隔は -d オプションや実行中に d キーで変更できます。

Step 2画面の見方

topの画面は大きく「サマリー部分」と「プロセス一覧」に分かれます。

表示内容
1行目稼働時間、ログインユーザー数、ロードアベレージ
2行目タスク数(実行中・スリープ中・停止・ゾンビ)
3行目CPU使用率(us:ユーザー、sy:システム、id:アイドル)
4行目物理メモリの使用状況
5行目スワップメモリの使用状況

プロセス一覧の主要な列は以下のとおりです。

列名説明
PIDプロセスID
USER実行ユーザー
%CPUCPU使用率
%MEMメモリ使用率
RES実メモリ使用量
COMMANDコマンド名

Step 3操作キー一覧

top実行中に使えるキーボードショートカットです。

キー動作
qtopを終了
Mメモリ使用率でソート
PCPU使用率でソート(デフォルト)
kプロセスを終了(PIDを入力)
1CPUコアごとの使用率を表示
d更新間隔を変更
u特定ユーザーのプロセスだけ表示
cコマンドのフルパスを表示

Step 4便利な起動オプション

topの起動時にオプションを指定して、表示をカスタマイズできます。

ターミナル
# 更新間隔を1秒に設定
top -d 1

# 特定ユーザーのプロセスだけ表示
top -u www-data

# バッチモードで1回だけ出力(スクリプト用)
top -bn1

# 表示するプロセス数を制限
top -bn1 -n 10

Step 5実践的な活用例

サーバー管理でよく使うtopの活用パターンです。

ターミナル
# CPU消費トップ10をファイルに保存
top -bn1 -o %CPU | head -17 > /tmp/cpu_report.txt

# メモリ消費トップ10をファイルに保存
top -bn1 -o %MEM | head -17 > /tmp/mem_report.txt

# ロードアベレージの確認だけなら uptime が簡潔
uptime

# htop(topの高機能版)もおすすめ
sudo apt install htop
htop
htopがおすすめ

htop はtopの高機能版で、カラー表示・マウス操作・プロセスツリー表示などに対応しています。多くのディストリビューションで apt install htopyum install htop でインストールできます。