【Linux入門】リソース状況を確認できる便利コマンド一覧

EC2アイキャッチ画像

Linuxサーバーを扱っていると、
「重いけど原因がわからない」
「メモリ不足なのか、CPUなのか、I/Oなのか」
といった状況に遭遇することがあります。

そんなときに使える、定番のリソース確認コマンドをまとめました。

1. free:メモリ使用状況を確認

free

各カラムの意味

メモリの空き容量・使用量・キャッシュなど、全体像を把握できます。

ポイント

  • freeの値だけで判断しない!
  • buff/cache に多く割かれていても、availableが多ければ問題なし。
  • Swap の使用率も要確認。usedが増えているとメモリ不足の兆候かも。

2. w:ログインユーザーとシステム負荷を確認

w

ログインしているユーザーと、CPU負荷の状況が一目でわかります。

上段:システム全体

項目説明
現在の時刻14:45:10
up 255 days, 9:19起動してからの時間(この例では255日と9時間19分)
1 usersログイン中ユーザー数
load average1分・5分・15分のCPU負荷平均

下段:ログインユーザー情報

カラム名説明
USERログインしているユーザー名
TTYターミナルの種類(例:pts/0 → SSHなどの仮想端末)
FROM接続元のIPアドレスまたはホスト名(ローカル接続なら空欄になることも)
LOGIN@ログインした時刻(または「何時間前にログインしたか」)
IDLEユーザーが最後に操作してからの経過時間(放置時間)
JCPUログインセッション全体で消費したCPU時間(bash や vim など全部含む)
PCPU現在実行中のコマンド単体で使っているCPU時間
WHATユーザーが現在実行しているコマンド(例:bashtopsshd など)

補足

  • TTY が pts/0, pts/1 のようになっているのは、SSHやリモート接続によって割り当てられた仮想端末です。
  • IDLE が「?」の時は、何らかの理由でアイドル時間が取得できていない(例:デーモン経由ログイン)。
  • JCPU ≠ PCPU
    → JCPUはそのセッションで動いていたすべてのプロセスの合算、PCPUは今アクティブなコマンドのみ。

CPUコア数ごとの Load Average の目安

CPUコア数軽負荷の目安通常負荷の目安高負荷の目安説明
1コア0.00 ~ 0.700.70 ~ 1.001.00 以上1.00を超えるとCPUが常に忙しい状態
2コア0.00 ~ 1.501.50 ~ 2.002.00 以上2.00を超えるとプロセスが待たされる
4コア0.00 ~ 3.003.00 ~ 4.004.00 以上
8コア0.00 ~ 6.006.00 ~ 8.008.00 以上
16コア0.00 ~ 12.0012.00 ~ 16.0016.00 以上

ポイント

  • 不審なログインや長時間放置ユーザーの確認に最適
  • load averageが常に高い場合はプロセスやCPUを要チェック

3. vmstat:全体のパフォーマンスを把握

vmstat

各カラムの意味

プロセス

カラム説明
r実行待ちプロセス数(高いとCPUが混雑)
bブロック状態(I/O待ち)

メモリ

カラム説明
swpdスワップ使用量
free空きメモリ
buffバッファメモリ
cacheキャッシュメモリ

スワップ

カラム説明
siスワップイン(ディスク→メモリ)
soスワップアウト(メモリ→ディスク)

I/O

カラム説明
bi読み込み速度(KB/s)
bo書き込み速度(KB/s)

CPU

カラム説明
usユーザープロセスCPU使用率
syカーネルCPU使用率
idアイドル時間
waI/O待ち時間

4. uptime:稼働時間と負荷平均を確認

uptime

各カラムの意味

wとほぼ同じなので、割愛します。

wとuptimeの違い

コマンド主な用途出力内容リアルタイム更新
uptimeシステムの稼働時間や負荷を確認・現在時刻・稼働時間(uptime)・ログインユーザー数・ロードアベレージ(1分/5分/15分)×(1回だけ表示)
wログインユーザーとシステム状態の確認・現在時刻、稼働時間、ログインユーザー数、ロードアベレージ・ユーザーごとのログイン端末(TTY)、ログイン元(FROM)、アイドル時間(IDLE)、CPU使用率(JCPU/PCPU)、実行中コマンド(WHAT)×(1回だけ表示)

ポイント

  • uptime は 簡易サマリ 用、負荷の推移だけ知りたいときに便利
  • w は ユーザー情報込みの詳細サマリ、不審なユーザーや長時間放置セッションの確認に便利

top:リアルタイムでプロセス監視

top

システム情報

項目説明
14:58:19現在の時刻
up 255 daysシステムの稼働時間
1 user現在ログインしているユーザー数
load average: 0.15, 0.10, 0.051分、5分、15分のロードアベレージ

プロセス情報

項目説明
81 total合計プロセス数
1 running実行中のプロセス数
80 sleeping待機中(スリープ状態)のプロセス数
0 stopped停止したプロセス数
0 zombieゾンビプロセス(終了したが親プロセスが回収していないプロセス)

CPU使用率

項目説明
usユーザープロセスのCPU使用率(アプリやスクリプト)
syシステムプロセスのCPU使用率(カーネル)
ni優先度を変更されたプロセスのCPU使用率
idアイドル時間(何もしていない時間)
waI/O待ちの時間(高いとディスクI/Oが遅い)
hiハードウェア割り込みの処理時間
siソフトウェア割り込みの処理時間
st仮想マシンに奪われたCPU時間(KVMやVMware環境)

CPU負荷の目安

  • us + sy が 80%以上 → 負荷が高い
  • wa が 10%以上 → ディスクI/Oのボトルネック

メモリ使用状況

項目説明
total総メモリ容量(950.8MB)
free空きメモリ(109MB)
used使用中のメモリ(267.2MB)
buff/cacheバッファ/キャッシュ(574.6MB、開放可能)
Swapスワップ領域の使用状況

プロセス一覧

プロセス
項目説明
PIDプロセスID
USER実行ユーザー
PRプロセスの優先度
NINICE値(優先度調整)
VIRT仮想メモリ使用量
RES実メモリ使用量
SHR共有メモリ使用量
S状態 (R=実行中, S=スリープ, Z=ゾンビ)
%CPUCPU使用率
%MEMメモリ使用率
TIME+CPU累積使用時間
COMMANDコマンド名

まとめ

コマンド用途
freeメモリ使用状況の把握
wログインユーザーとシステム負荷
vmstatCPU/メモリ/I/Oなど広範囲にチェック
uptime稼働時間+負荷の傾向を確認
topプロセス単位の監視に最適

「重い」「遅い」と感じたら、まずはこれらのコマンドで状態をチェックしてみましょう。
それだけでトラブルの初動対応が格段に速くなります。