本文へスキップ
BecomeCoder

サーバーコース · 第2章 サービスとプロセス · レッスン9

top・free・df ― サーバーの負荷とリソースを見る

ブラウザで完結

導入

個々のプロセスではなく、「サーバー全体の元気度」を見たいときがあります。CPU は忙しい? メモリは足りてる? ディスクは空いてる?——それぞれを見るのが top(負荷)・free(メモリ)・df(ディスク)です。「サーバーが重い」の正体を突き止める三種の神器です。

説明

top は、CPU・メモリの状況と、負荷の高いプロセスを上から順に見せてくれます(本物は画面が更新され続ける対話型。ここでは瞬間のスナップショットを表示します)。

top

上部の load average(負荷の平均)と %CpuMiB Mem に注目します。下の一覧は %CPU の高い順。暴走している python3 train.py が上位に来ているのが分かります。ps aux | grep が「特定を名指しで探す」のに対し、top は「今いちばん重いのは何かを俯瞰する」道具です。

メモリの空きを見るのが free です。-h(human-readable)で読みやすい単位になります。

free -h

Mem: 行の available(実際に使える空き)が重要です。ここが極端に少ないと、サーバーは新しい処理をさばけず重くなります。

ディスクの空きを見るのが df(disk free)です。これも -h を付けます。

df -h

Use%(使用率)が 100% に近いと危険信号。ログが溜まりすぎてディスクが満杯になり、サービスが止まる——というのは、現場でよくある障害です(だからログの管理が大事。第9章)。

flowchart LR
    Q["サーバーが重い/おかしい"] --> T["top<br/>CPU負荷は?<br/>どのプロセスが重い?"]
    Q --> F["free -h<br/>メモリは足りてる?"]
    Q --> D["df -h<br/>ディスクは空いてる?"]

「重い」と言われたら、まず top(CPU)→ free(メモリ)→ df(ディスク)の3点を確認する、と手順化しておくと迷いません。原因の切り分けが、当てずっぽうではなく「見て確かめる」に変わります。

やってみよう

top を打って、上部の負荷情報と、%CPU 順に並んだプロセス(暴走中の python3 が上位)を確認しましょう。free -h でメモリの availabledf -h でディスクの Use% を見て、「サーバー全体の元気度」を3つの角度から眺めてください。

演習

サーバーのディスク使用量・空き容量を、人が読みやすい単位で表示してください。

ヒント1を見る

ディスクの空きは df、読みやすい単位は -h です。

ヒント2を見る

df -h

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

Linux シェル(シミュレート)

ブラウザ内でコマンドを試せる仮想シェルを読み込みます(本物のLinuxカーネルではなく学習用の再現です)。
スクロールして表示された時点でも自動で読み込まれます。