##sar(sysstat)とは
LoadAverageやCPU使用率、ディスクI/Oの状態を表示できるコマンド。
何より便利なのは、過去にさかのぼれる点。
##sarのインストール
# yum install sysstat
インストールすると、ログを取り始めます。
##sarのログ取得間隔の変更
/etc/cron.d/sysstat を編集します。
$sudo vi /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
デフォルト10分間隔(*/10)になっているので、好みの間隔に変更。
##主要コマンド一覧
|コマンド|内容|
|:-----------|------------|:------------:|
|sar -q|loadaverage|
|sar -u|CPU使用率|
|sar -b|I/O|
|sar -r|メモリとスワップ使用率|
|sar -s time|指定時間以降のデータ|
|sar -e time|指定時間までのデータ|
|sar -f /var/log/sa/sa01| 日付別の過去データ|
##-qでLoadAverageをチェック
$ sar -q -s 21:00:00
21時00分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
21時05分01秒 1 203 0.19 0.20 0.16
21時10分01秒 0 203 0.21 0.18 0.17
21時15分01秒 2 209 0.11 0.18 0.17
21時20分01秒 1 208 0.38 0.20 0.18
21時25分01秒 0 210 0.10 0.20 0.18
平均値: 1 207 0.20 0.19 0.17
ldavg-xが、過去x分間のLoadAverageを示します。
##LoadAverageの上昇が見られたら
基本的に、
- CPU負荷(プロセス不足)
- I/O負荷
のどちらかに切り分けられます。
##-uでCPU使用率をチェック
$ sar -u -s 21:00:00
21時00分01秒 CPU %user %nice %system %iowait %steal %idle
21時05分01秒 all 11.42 0.00 3.89 0.16 0.00 84.52
21時10分01秒 all 11.32 0.00 3.44 0.45 0.00 84.79
21時15分01秒 all 10.74 0.00 3.41 0.20 0.00 85.64
21時20分01秒 all 10.26 0.00 3.29 0.13 0.00 86.32
21時25分01秒 all 10.81 0.00 3.60 0.15 0.00 85.44
21時30分01秒 all 9.41 0.00 3.03 0.17 0.00 87.39
平均値: all 10.66 0.00 3.44 0.21 0.00 85.68
sar -uは、CPUがどのようなモードになっていたのか、
それぞれのモードの割合を示してくれる。
|モード|内容|
|:-----------|------------|:------------:|
|%user|アプリケーション(ユーザプロセス)が使用している状態|
|%system| カーネル(OSなど)が使用している状態 |
|%iowait| ディスクI/O待ち状態|
|%idle | CPUが何の処理もしない待機状態(I/O待ちの時間は除く)|
※steal、niceは省きます。詳細は下部の参考を参照ください。
##sar -u から分かること
%userか%systemが高いと・・・CPUボトルネック(もしくはメモリ不足)
(%userならアプリケーション側。%systemならカーネル側。)
%iowaitが高いと・・・ディスクI/Oボトルネック。
##-bでディスクI/O状況をチェック
$ sar -b -s 21:00:00
21時00分01秒 tps rtps wtps bread/s bwrtn/s
21時05分01秒 15.67 0.00 15.67 0.00 363.44
21時10分01秒 15.42 0.00 15.42 0.00 389.58
21時15分01秒 16.25 0.00 16.25 0.00 355.18
21時20分01秒 13.50 0.00 13.50 0.00 313.71
21時25分01秒 15.98 0.00 15.97 0.05 351.94
21時30分01秒 14.43 0.00 14.43 0.00 313.95
21時35分01秒 13.22 0.00 13.22 0.00 296.66
|項目|内容|
|:-----------|------------|:------------:|
|tps| 秒間I/Oリクエスト 数の合計。|
|rtps| 秒間読み込みIOリクエスト数の合計。|
|wtps| 秒間書き込みIOリクエスト数の合計。|
|bread/s| 秒間読み込み(ブロック単位)IOリクエストのデータ量の合計。|
|bwrtn/s| 秒間書き込み(ブロック単位)IOリクエストのデータ量の合計。|
##-rでメモリとスワップの使用状況をチェック
$ sar -r -s 21:00:00
21時00分01秒 kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad
21時05分01秒 655456 3388400 83.79 254316 1595220 2152620 80 0.00 0
21時10分01秒 642676 3401180 84.11 254364 1596728 2152620 80 0.00 0
21時15分01秒 598616 3445240 85.20 254376 1598160 2152620 80 0.00 0
21時20分01秒 598744 3445112 85.19 254388 1599628 2152620 80 0.00 0
21時25分01秒 681552 3362304 83.15 254396 1601256 2152620 80 0.00 0
21時30分01秒 548508 3495348 86.44 254416 1602084 2152620 80 0.00 0
重要なのは以下でしょうか。
|項目|内容|
|:-----------|------------|:------------:|
|kbmemfree| メモリ空き容量(kb)|
|kbmemused| メモリ使用量(kb)|
|%memused| メモリ使用率|
|kbswpfree| スワップ空き容量(kb)|
|kbswpused| スワップ使用量(kb)|
|%swpused| スワップ使用率|
##過去データを日時指定して実行
例えば当月15日の23:30以降のデータを見たい時は・・
$ sar -u -s 23:30:00 -f /var/log/sa/sa15
23時30分01秒 CPU %user %nice %system %iowait %steal %idle
23時35分01秒 all 7.20 0.00 2.39 0.17 0.00 90.24
23時40分01秒 all 8.35 0.00 2.65 0.12 0.00 88.89
23時45分01秒 all 6.76 0.00 2.31 0.10 0.00 90.83
23時50分01秒 all 7.27 0.00 2.36 0.12 0.00 90.25
23時55分01秒 all 8.18 0.00 2.66 0.12 0.00 89.03
平均値: all 7.55 0.00 2.47 0.12 0.00 89.85
##参考
sarコマンド - CPU・ネットワーク・メモリ・ディスク情報確認
http://www.syboos.jp/linux/doc/sar-command.html
sarコマンドの見方
http://linux.alohakeakua.net/archives/488
CPU利用率: stealとは
http://d.hatena.ne.jp/mir/20080407/p1
nice:優先順位を上げてプログラムを実行する
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231193/