【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 | プロセス単位の監視に最適 |
「重い」「遅い」と感じたら、まずはこれらのコマンドで状態をチェックしてみましょう。
それだけでトラブルの初動対応が格段に速くなります。