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 | 実行ユーザー |
| %CPU | CPU使用率 |
| %MEM | メモリ使用率 |
| RES | 実メモリ使用量 |
| COMMAND | コマンド名 |
Step 3操作キー一覧
top実行中に使えるキーボードショートカットです。
| キー | 動作 |
|---|---|
q | topを終了 |
M | メモリ使用率でソート |
P | CPU使用率でソート(デフォルト) |
k | プロセスを終了(PIDを入力) |
1 | CPUコアごとの使用率を表示 |
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 htop や yum install htop でインストールできます。