【Linux入門】リソース状況を確認できる便利コマンド一覧
Linuxサーバーを扱っていると、
「重いけど原因がわからない」
「メモリ不足なのか、CPUなのか、I/Oなのか」
といった状況に遭遇することがあります。
そんなときに使える、定番のリソース確認コマンドをまとめました。
1. free:メモリ使用状況を確認
各カラムの意味
メモリの空き容量・使用量・キャッシュなど、全体像を把握できます。
| カラム | 説明 |
|---|
| total | メモリの総容量(MB) |
| used | 実際に使用中のメモリ |
| free | まったく使われていないメモリ |
| shared | 共有メモリに使われている量 |
| buff/cache | OSによるキャッシュ/バッファ使用量 |
| available | 新しいプロセスに割り当て可能なメモリ |
ポイント
- freeの値だけで判断しない!
- buff/cache に多く割かれていても、availableが多ければ問題なし。
- Swap の使用率も要確認。usedが増えているとメモリ不足の兆候かも。
2. w:ログインユーザーとシステム負荷を確認
ログインしているユーザーと、CPU負荷の状況が一目でわかります。
上段:システム全体
| 項目 | 説明 |
|---|
| 現在の時刻 | 14:45:10 |
| up 255 days, 9:19 | 起動してからの時間(この例では255日と9時間19分) |
| 1 users | ログイン中ユーザー数 |
| load average | 1分・5分・15分のCPU負荷平均 |
※
下段:ログインユーザー情報
| カラム名 | 説明 |
|---|
| USER | ログインしているユーザー名 |
| TTY | ターミナルの種類(例:pts/0 → SSHなどの仮想端末) |
| FROM | 接続元のIPアドレスまたはホスト名(ローカル接続なら空欄になることも) |
| LOGIN@ | ログインした時刻(または「何時間前にログインしたか」) |
| IDLE | ユーザーが最後に操作してからの経過時間(放置時間) |
| JCPU | ログインセッション全体で消費したCPU時間(bash や vim など全部含む) |
| PCPU | 現在実行中のコマンド単体で使っているCPU時間 |
| WHAT | ユーザーが現在実行しているコマンド(例:bash, top, sshd など) |
補足
- TTY が pts/0, pts/1 のようになっているのは、SSHやリモート接続によって割り当てられた仮想端末です。
- IDLE が「?」の時は、何らかの理由でアイドル時間が取得できていない(例:デーモン経由ログイン)。
- JCPU ≠ PCPU
→ JCPUはそのセッションで動いていたすべてのプロセスの合算、PCPUは今アクティブなコマンドのみ。
CPUコア数ごとの Load Average の目安
| CPUコア数 | 軽負荷の目安 | 通常負荷の目安 | 高負荷の目安 | 説明 |
|---|
| 1コア | 0.00 ~ 0.70 | 0.70 ~ 1.00 | 1.00 以上 | 1.00を超えるとCPUが常に忙しい状態 |
| 2コア | 0.00 ~ 1.50 | 1.50 ~ 2.00 | 2.00 以上 | 2.00を超えるとプロセスが待たされる |
| 4コア | 0.00 ~ 3.00 | 3.00 ~ 4.00 | 4.00 以上 | |
| 8コア | 0.00 ~ 6.00 | 6.00 ~ 8.00 | 8.00 以上 | |
| 16コア | 0.00 ~ 12.00 | 12.00 ~ 16.00 | 16.00 以上 | |
ポイント
- 不審なログインや長時間放置ユーザーの確認に最適
- load averageが常に高い場合はプロセスやCPUを要チェック
3. 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 | アイドル時間 |
| wa | I/O待ち時間 |
4. uptime:稼働時間と負荷平均を確認
各カラムの意味
wとほぼ同じなので、割愛します。
wとuptimeの違い
| コマンド | 主な用途 | 出力内容 | リアルタイム更新 |
|---|
| uptime | システムの稼働時間や負荷を確認 | ・現在時刻・稼働時間(uptime)・ログインユーザー数・ロードアベレージ(1分/5分/15分) | ×(1回だけ表示) |
| w | ログインユーザーとシステム状態の確認 | ・現在時刻、稼働時間、ログインユーザー数、ロードアベレージ・ユーザーごとのログイン端末(TTY)、ログイン元(FROM)、アイドル時間(IDLE)、CPU使用率(JCPU/PCPU)、実行中コマンド(WHAT) | ×(1回だけ表示) |
ポイント
- uptime は 簡易サマリ 用、負荷の推移だけ知りたいときに便利
- w は ユーザー情報込みの詳細サマリ、不審なユーザーや長時間放置セッションの確認に便利
top:リアルタイムでプロセス監視
システム情報
| 項目 | 説明 |
|---|
| 14:58:19 | 現在の時刻 |
| up 255 days | システムの稼働時間 |
| 1 user | 現在ログインしているユーザー数 |
| load average: 0.15, 0.10, 0.05 | 1分、5分、15分のロードアベレージ |
プロセス情報
| 項目 | 説明 |
|---|
| 81 total | 合計プロセス数 |
| 1 running | 実行中のプロセス数 |
| 80 sleeping | 待機中(スリープ状態)のプロセス数 |
| 0 stopped | 停止したプロセス数 |
| 0 zombie | ゾンビプロセス(終了したが親プロセスが回収していないプロセス) |
CPU使用率
| 項目 | 説明 |
|---|
| us | ユーザープロセスのCPU使用率(アプリやスクリプト) |
| sy | システムプロセスのCPU使用率(カーネル) |
| ni | 優先度を変更されたプロセスのCPU使用率 |
| id | アイドル時間(何もしていない時間) |
| wa | I/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 | プロセスの優先度 |
| NI | NICE値(優先度調整) |
| VIRT | 仮想メモリ使用量 |
| RES | 実メモリ使用量 |
| SHR | 共有メモリ使用量 |
| S | 状態 (R=実行中, S=スリープ, Z=ゾンビ) |
| %CPU | CPU使用率 |
| %MEM | メモリ使用率 |
| TIME+ | CPU累積使用時間 |
| COMMAND | コマンド名 |
まとめ
| コマンド | 用途 |
|---|
| free | メモリ使用状況の把握 |
| w | ログインユーザーとシステム負荷 |
| vmstat | CPU/メモリ/I/Oなど広範囲にチェック |
| uptime | 稼働時間+負荷の傾向を確認 |
| top | プロセス単位の監視に最適 |
「重い」「遅い」と感じたら、まずはこれらのコマンドで状態をチェックしてみましょう。
それだけでトラブルの初動対応が格段に速くなります。