Open4

システム負荷調査関連コマンド

haseyuyhaseyuy

uptime

  • 起動された時間
  • 起動されてから経過した時間
  • ログインしているユーザ数
  • 負荷状況を示すロードアベレージ(1分, 5分, 15分)
$ uptime
 16:13:25 up 2 days,  4:30,  1 user,  load average: 0.00, 0.00, 0.00
haseyuyhaseyuy

dmesg

  • カーネルのログ用リングバッファを表示
  • リングバッファと呼ばれる構造になっており、記録内容が規定のファイルサイズを超えると先頭に戻って古い内容から順に上書きする
  • /var/log/dmesgに置かれることが多い
$ dmesg | tail
[ 8369.924644] IPv6: ADDRCONF(NETDEV_CHANGE): vethed9e5c18: link becomes ready
[ 8369.924975] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 8369.925840] cni-podman0: port 1(vethed9e5c18) entered blocking state
[ 8369.926184] cni-podman0: port 1(vethed9e5c18) entered disabled state
[ 8369.926523] device vethed9e5c18 entered promiscuous mode
[ 8369.926857] cni-podman0: port 1(vethed9e5c18) entered blocking state
[ 8369.927179] cni-podman0: port 1(vethed9e5c18) entered forwarding state
[21011.425042] cni-podman0: port 1(vethed9e5c18) entered disabled state
[21011.425950] device vethed9e5c18 left promiscuous mode
[21011.426268] cni-podman0: port 1(vethed9e5c18) entered disabled state

時刻をわかりやすいように表示(-T)

# dmesg -T | tail
[1210 14:02:01 2021] IPv6: ADDRCONF(NETDEV_CHANGE): vethed9e5c18: link becomes ready
[1210 14:02:01 2021] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[1210 14:02:01 2021] cni-podman0: port 1(vethed9e5c18) entered blocking state
[1210 14:02:01 2021] cni-podman0: port 1(vethed9e5c18) entered disabled state
[1210 14:02:01 2021] device vethed9e5c18 entered promiscuous mode
[1210 14:02:01 2021] cni-podman0: port 1(vethed9e5c18) entered blocking state
[1210 14:02:01 2021] cni-podman0: port 1(vethed9e5c18) entered forwarding state
[1210 17:32:43 2021] cni-podman0: port 1(vethed9e5c18) entered disabled state
[1210 17:32:43 2021] device vethed9e5c18 left promiscuous mode
[1210 17:32:43 2021] cni-podman0: port 1(vethed9e5c18) entered disabled state
haseyuyhaseyuy

free

  • メモリ状況を確認するコマンド
  • 「used」は「total - free - buffers - cache」の値
  • 空きメモリがある限り、基本的に「buff/cache」は増加していく
  • 空きメモリが無くなれば、使用中のメモリの増加に応じて、「buff/cache」が減少していく
  • Swap領域とは、HDD内に設置される領域、メモリ容量が足りなくなった時、メモリの中で不要な部分をSwap領域を退避する(スワップアウト)
項目 内容
total 合計メモリ量
used メモリ使用量
free 全く使われていない未割り当てメモリ量
shared tmpfsに使われている共有メモリ
buff/cache ファイルバッファ+キャッシュメモリに使われているメモリ量
available 実質的な空きメモリ。freeが少なくなってきたら解放できるカーネル用のメモリのサイズを足したもの
$ free -m
              total        used        free      shared  buff/cache   available
Mem:           8272         675        5206          79        2391        7241
Swap:          4299           0        4299
haseyuyhaseyuy

vmstat

procs

r :ランタイム待ちのプロセス数

  • この数字が大きい(通常は0~2程度)場合、サーバは重い

b: 割り込み不可能なスリープ状態にあるプロセス数

  • この数字が大きい(通常は0~2程度)場合、ディスクやネットワークのI/O待ち状態に入って、実際には実行できていない

memory

swpd:仮想メモリ量(KB)

  • 使用しているスワップ領域

free:空きメモリ量

  • 未利用のメモリ量

buff

cache

swap

si:ディスクからスワップインされているメモリの量

  • スワップ(ディスク)⇨メモリの方向で展開したデータ量。スワップイン

so:ディスクにスワップしているメモリの量

  • メモリ⇨スワップ(ディスク)の方向でスワップ領域に書き込んだデータ量。スワップアウト

io

system

in:1秒あたりの割り込み回数

  • 今までしていたことを一旦やめて、他の処理を行う回数のレポート

cs:1秒あたりのコンテキストスイッチの回数

  • プログラムの実行を切り替えること
  • この数値が大きいと、オーバーヘッドが起きる

cpu

us:カーネルコード以外の実行に使用した時間

  • 一般プログラムが動いていた時間の割合

sy:カーネルコードの実行に使用した時間

  • カーネルコード(OS自身、Linuxコール等で呼び出された等)の処理のために費やした時間の割合

id:アイドル時間

  • 完全にcpuが空いていた時間の割合

wa:IO待ち時間

  • データの入出力処理(ディスクアクセス、ネットワークアクセス)を試みたものの、結果的にデータを待っていた時間の割合

st:仮想マシンから盗まれた時間

$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0 5331576   4228 2444756    0    0     2    13   16   37  0  4 96  0  0