Linuxのリソース管理に使うまとめ
LPIC201試験の勉強のために、あずき本の第1章「キャパシティプランニング 」の部分を簡単にまとめてみた。
この章には、Linuxシステムが必要となるリソースに関するツールについて書いてある。CPU・RAM・ディスク・ネットワークの使用率等を確認するコマンドを覚えていくのが主。
総合的にいろいろみれるもの
top
これが一番総合的に見られる。オプションなしでtop
を使うと、数秒ごとに情報を取得して表示が更新される。得体の知れないサーバーにログインしたらとりあえず打つとよいのかも。簡単なモニタリングにも使える。
1行目にはシステムが起動してからの経過時間とユーザ数、ロードアベレージ。 2行目にはプロセスの状態ごとの数。 3行目はCPU使用率。これは少し覚える必要がある。
- us: ユーザーがCPUを使用している時間の割合 (user)
- sy: カーネルがCPUを使用している時間の割合 (system)
- ni: 優先度(nice値)が変更されたプロセスが使用している時間の割合
- id: アイドル状態の時間の割合 (idle)
- wa: ディスクIO待ちの時間の割合 (wait)
- hi: ハードウェア割り込み要求時間の割合 (hardware interruption)
- si: ソフトウェア割り込み要求時間の割合 (software interruption)
- st: ゲストOSがCPUを割り当てられず待機させられた時間の割合 (steal)
4行目がメモリで、 5行目がスワップ。
- total: 物理メモリの合計値
- used: 使用中のメモリ
- free: 未使用のメモリ
- バッファ容量
それ以下が各プロセスごとの情報を表示。デフォルトだとCPU使用率(%CPU)で降順にソートされる。
起動時のオプションや実行中に使えるコマンドなどものすごい数のオプションがあるがかいつまんで。
top -d [秒数]
で更新間隔を指定、top -n [回数]
で更新回数を指定。
コマンド内での操作。スペースバーかEnterキーで表示を更新。h
でヘルプが見られる。f
で表示項目を選択できるモードに変わる。q
で終了。
sar
ハイパー多機能。sysstatパッケージに含まれているとのこと。システム状況を収集するsadcコマンドとそれらを表示するsarコマンドで構成されている。/var/log/sa
ディレクトリ以下にsaXXというファイル名で保存されていて、それらを表示するのがsar
コマンド。
sar -b
でディスク情報、sar -n DEV
でネットワークインターフェース情報、sar -r
でメモリ情報を表示。
18時10分01秒 154440 1767208 91.96 112904 645580 1722128 28.39 18時20分01秒 151736 1769912 92.10 113892 647440 1720180 28.35 18時30分01秒 119348 1802300 93.79 114884 647856 1747284 28.80 18時40分01秒 183628 1738020 90.44 116008 653040 1680160 27.69 18時50分01秒 154860 1766788 91.94 117080 657300 1707548 28.15 19時00分01秒 123400 1798248 93.58 117880 658436 1735576 28.61 19時10分01秒 156532 1765116 91.85 118936 660380 1702820 28.07 19時20分01秒 197932 1723716 89.70 119860 660484 1666748 27.47 19時30分01秒 140792 1780856 92.67 120888 662688 1712456 28.23 平均値: 151475 1770173 92.12 146528 367927 1792382 29.54
そのほか
vmstat
はメモリと仮想メモリの詳細な状態を継続的に監視する。引数なしだと一度のみ表示。引数に は数値を二つ取れて、第一引数が表示間隔、第二引数が表示回数。
$ vmstat 1 4 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 26676 142444 120912 662696 0 0 14 13 0 0 3 1 95 1 0 0 0 26676 142436 120912 662696 0 0 0 0 30 62 0 0 100 0 0 0 0 26676 142436 120912 662696 0 0 0 0 24 56 0 0 100 0 0 0 0 26676 142436 120912 662696 0 0 0 0 30 65 0 0 100 0 0
iostat
はCPUの使用率とディスクの入出力に関する情報の監視に使える。引数なしだと、システムが起動してから現在までの統計情報を表示。数値を入れるとその秒数間隔で表示が追加される。
Linux 3.10.0-123.6.3.el7.x86_64 (localhost.localdomain) 2014年08月25日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.49 0.00 0.48 0.41 0.00 98.62 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 5.18 79.89 13.98 267139 46748 dm-0 0.09 0.37 0.00 1244 0 dm-1 3.90 77.67 10.06 259712 33635
uptime
でシステムの稼働時間などを表示。top
の1行目とほぼ同じ。
$ uptime 06:34:16 up 57 min, 1 user, load average: 0.00, 0.01, 0.05
w
でログインしているユーザーを確認。1行目はuptime
と同じ。
$ w 06:34:45 up 57 min, 1 user, load average: 0.00, 0.01, 0.05 USER TTY LOGIN@ IDLE JCPU PCPU WHAT vagrant pts/0 05:38 5.00s 0.11s 0.07s sshd: vagrant [priv]
CPU使用率
ps
はおなじみ、プロセスの状態を見るコマンド。Linuxにおいて非常に基本的なコマンド。多くのオプションにハイフンがいらない。ps a
で端末上の全てのプロセスを表示、ps u
で実行ユーザ名も表示、ps x
で端末制御のないプロセス(デーモンなど)も表示。
$ ps aux | grep httpd apache 13403 0.9 2.0 582552 38532 ? S 12:21 3:55 /usr/sbin/httpd apache 15761 1.5 2.3 589280 45208 ? S 14:35 4:18 /usr/sbin/httpd apache 23045 0.1 1.8 483672 35404 ? S 19:13 0:00 /usr/sbin/httpd apache 23105 0.0 0.6 463592 12292 ? S 19:15 0:00 /usr/sbin/httpd user1 23223 0.0 0.0 107468 896 pts/0 S+ 19:23 0:00 grep httpd root 32290 0.0 1.0 463460 19316 ? Ss Jul27 2:04 /usr/sbin/httpd
pstree
はinitから始まるプロセスの親子関係を木構造で見られる。ちなみにMacだとlaunchdがルートプロセスになるんですね。
init─┬─NetworkManager ├─abrt-dump-oops ├─abrtd ├─atd ├─auditd───{auditd} ├─automount───4*[{automount}] ├─clamd───{clamd} ├─crond ├─dbus-daemon ├─dovecot─┬─anvil │ ├─config (略)
lsof
というのもプロセスの確認に使えるようだ。
メモリ
もちろん top
やsar -r
で確認できるのだがもっとお手軽にみるにはfree
。スワップも含めたメモリの使用量を確認できる。free -b
でbyte単位、free -m
でmega byte単位、・・・。free -s [間隔(秒)]
で複数回出力させられる。free -t
でTotal:
の行が追加される
$ free total used free shared buffers cached Mem: 502168 391716 110452 4704 1444 252668 -/+ buffers/cache: 137604 364564 Swap: 839676 0 839676
もっと詳細に見たければ/proc/memoinfo
をみると良い。その瞬間のメモリ状態が見られる。
ディスク
df
はディスクの状態を見る。df -H
でhuman readableな単位をつけて表示される(df -h
だと1MB=1000kBで表示される)。引数にディレクトリを指定することでそのディレクトリが含まれるファイルシステムについて表示する。df -i
でiノード情報を表示。
$ df ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 6.7G 1.6G 5.2G 23% / devtmpfs 240M 0 240M 0% /dev tmpfs 246M 0 246M 0% /dev/shm tmpfs 246M 4.3M 241M 2% /run tmpfs 246M 0 246M 0% /sys/fs/cgroup /dev/sda1 497M 153M 345M 31% /boot
ネットワークトラフィック
いろいろあるが、あずき本ではnetstat
が載っている。ネットワーク接続や、ルーティングテーブル、インターフェースの統計情報など。
ctive Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost.localdoma:ssh 10.0.2.2:63999 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 10095 @/org/freedesktop/systemd1/notify unix 5 [ ] DGRAM 6004 /run/systemd/journal/socket unix 15 [ ] DGRAM 6006 /dev/log unix 2 [ ] DGRAM 10157 /run/systemd/shutdownd unix 2 [ ] DGRAM 12752 unix 3 [ ] STREAM CONNECTED 17348 unix 3 [ ] STREAM CONNECTED 14767 unix 2 [ ] DGRAM 16757
マニュアルをみると "This program is obsolete."とあり、ss
というコマンドで代替できるらしい。

Linux教科書 LPICレベル2 Version4.0対応 (EXAMPRESS)
- 作者: 中島能和,濱野賢一朗
- 出版社/メーカー: 翔泳社
- 発売日: 2014/05/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る