お兄ちゃん!
代表的なリソースに
「CPU」「メモリ」「ストレージ」
があるんだよね!
今回は「CPU」の
リソース状況を
確認する方法を覚えよう!
top
コマンドtop
は
プロセスとそのリソース消費を
一覧表示するよ
top [オプション]...
では
top
を実行してみよう!top
うん!
top - 18:13:45 up 15 days, 5:22, 1 user, load average: 1.87, 3.21, 3.13
Tasks: 150 total, 1 running, 146 sleeping, 0 stopped, 3 zombie
%Cpu(s): 0.0 us, 33.3 sy, 0.0 ni, 66.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8052.3 total, 5871.7 free, 896.5 used, 1388.0 buff/cache
MiB Swap: 200.0 total, 200.0 free, 0.0 used. 7155.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 170432 12800 8192 S 0.0 0.2 0:53.74 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.53 kthreadd
...
色々なキー入力を受け付けるけど最初は「 だけ 覚えておこう!
q
で終了」おお!プロセスと CPU やメモリの使用状況が一覧表示されてる!Windows のみたいだね!
個々のプロセスも重要だけど全体的な状況把握も大事だよプロセス一覧の上にある「ロードアベレージ(load average)」 を見てみよう
load average: 1.87, 3.21, 3.13
3つの数字が並んでいるね?
ロードアベレージは「実行待ちになっている プロセスの平均数」だよ 「直近1分」「直近5分」「直近15分」の 3つの値を表しているんだ
この値で CPU が忙しいかどうかがわかるんだねどうやって判断するのかな?
値が CPU のコア数に近ければ負荷が高い状態コア数を超えているのなら処理が滞っている状態と判断できるよ
CPU のコア数は
nproc
でわかるね!nproc
実行結果はこうだったよ!
4
4
ということは…4
に近ければ近いほどは忙しく4
を超えたらキャパオーバー」このシステムではそういうことになるね
システムによっては
top
の改良版htop
や atop
が使える場合があるよそれぞれ表示が読みやすくなるよう工夫されているんだuptime
コマンドuptime
はシステム起動時間を表示するけどロードアベレージも表示してくれるよuptime [オプション]...
オプション | 役割 |
---|---|
-p , --pretty | 起動時間のみを見やすい形式で表示 |
それでは実行してみよう!
uptime
うん!
18:08:07 up 15 days, 5:17, 1 user, load average: 2.72, 2.49, 2.82
前回実行したときは起動時間しか目に入らなかったけどロードアベレージも表示してくれていたんだね!
ロードアベレージだけ確認したかったりスクリプトなどで加工するつもりなら
uptime
は出力が少なくて扱いやすいね!今回は CPU リソース状況の確認方法を学んだよ!
top
, uptime
で確認できるんだ!ロードアベレージは CPU 負荷の指標だよ!CPU リソースが不足するとアプリケーションが遅くなったりシステムが不安定になったりするんだこのようになったらCPU リソースを消費しているプロセスを
kill
で止めたりrenice
で優先度を下げよう!