年末監視コマンドTips

メリークリスマス！
[dots girls Advent Calendar 2015](http://qiita.com/advent-calendar/2015/dots_girls)のラストバッター吉澤です！

今月21日のdots.女子部でWebサーバー監視項目についてスライドでLTをしました。

[<img width="627" src="https://qiita-image-store.s3.amazonaws.com/0/20557/3c34ed09-90c0-c807-2ca0-61ec22cff76c.png">](http://www.slideshare.net/wakanayoshizawa/webtips-56357520)

上記スライドは監視項目の見方や閾値設定をまとめていますが、この記事ではターミナルで確認する場合に使う「とりあえず抑えるべき項目」のコマンドについてまとめます。

1. LoadAverage
2. CPU使用率
3. メモリ使用量
4. TCPコネクション数
5. ディスク使用量

## LoadAverage
### LAを確認する
`uptime`で確認できます。
左から、過去1分間、5分間、15分間の平均値です、

```
$ uptime
 17:38:50 up 75 days, 18:19,  1 user,  load average: 0.00, 0.00, 0.00
```

## CPU使用率
### CPU使用率を確認する
一番詳細に見れるのが`sar`コマンドです。

```
$ sar -u
Linux 2.6.32-504.8.1.el6.x86_64 (***) 	2015年12月25日 	_x86_64_	(2 CPU)

00時00分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
00時10分01秒     all      0.12      0.00      0.01      0.01      0.06     99.80
00時20分01秒     all      0.22      0.00      0.02      0.06      0.05     99.65
00時30分01秒     all      0.14      0.00      0.01      0.01      0.04     99.81
00時40分01秒     all      0.18      0.00      0.01      0.01      0.04     99.75
00時50分01秒     all      0.12      0.00      0.01      0.00      0.04     99.83
01時00分01秒     all      0.27      0.00      0.02      0.04      0.06     99.61
...
```

### CPUを一番使っている所
`top`コマンドで一番CPUを使っている所から順に出力されます。

```
$ top

top - 17:51:55 up 75 days, 18:32,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 107 total,   1 running, 106 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.2%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.2%st
Mem:   1020176k total,   955080k used,    65096k free,    73808k buffers
Swap:  2097148k total,    38756k used,  2058392k free,    65252k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                           
    1 root      20   0 19232  472  340 S  0.0  0.0   0:01.45 init                                                               
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                           
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.93 migration/0                                                        
    4 root      20   0     0    0    0 S  0.0  0.0   0:01.74 ksoftirqd/0                                                        
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0
...
```

## メモリ使用量
### メモリ使用量を確認する
`free`コマンドで確認ができます。
`buffers`や`cache`にメモリがほとんど割り当てられている状態であれば負荷はかかっていません。

```
$ free
             total       used       free     shared    buffers     cached
Mem:       1020176     862824     157352         96      40016      79592
-/+ buffers/cache:     743216     276960
Swap:      2097148      36116    2061032
```

### メモリを一番使っている所
`top`コマンドに`-a`を付けると一番メモリを使っている所から順に出力されます。

```
$ top -a

top - 17:45:10 up 75 days, 18:25,  1 user,  load average: 0.00, 0.02, 0.00
Tasks: 107 total,   1 running, 106 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1020176k total,   949996k used,    70180k free,    73540k buffers
Swap:  2097148k total,    38772k used,  2058376k free,    63008k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                           
 7317 apache    20   0  382m  47m 7528 S  0.0  4.7   0:15.37 httpd                                                              
 7353 apache    20   0  381m  46m 7628 S  0.0  4.7   0:12.34 httpd                                                              
 8180 apache    20   0  376m  40m 7488 S  0.0  4.1   0:02.23 httpd                                                              
 8162 apache    20   0  376m  40m 7504 S  0.0  4.1   0:02.87 httpd                                                              
 8155 apache    20   0  375m  40m 7528 S  0.0  4.1   0:03.81 httpd
...
```

## TCPコネクション数
### コネクション数を確認する
`netstat`で通信状況を確認できます。
`-t`を付けるとTCPのコネクションが出てくるので、それの行数を`wc -l`で出力しています。

```
$ netstat -t | wc -l
47
```

## ディスク使用量
### 全体のディスク使用量を確認する
`df`コマンドで全体のディスク使用量を確認できます。

```
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        97G  2.5G   89G   3% /
tmpfs           499M     0  499M   0% /dev/shm
/dev/vda1       239M   76M  151M  34% /boot
```

### ディレクトリ内のディスク容量を確認する
ディスク使用量が埋まってきている場合、場所を特定しなくてはなりません。
その時は`du`コマンドで各ディレクトリを参照します。

```
$ du -sh /var/www/*
84M	/var/www/aaaaa
209M	/var/www/bbbbb
64M	/var/www/ccccc
4.0K	/var/www/cgi-bin
1.2M	/var/www/ddddd
216K	/var/www/error
8.0K	/var/www/html
948K	/var/www/icons
```

以上抑えておけばだいたいなんとかなると思います。
dots.女子部ではサーバーからフロントまでフルスタックで技術を身につけたい女子の部活です。
普段はLTやもくもく会、年に3回くらい男性もWelcomeな大きめのイベントも開催予定なので気になってくださった方はフォローお願いいたします！
[Twitter](https://twitter.com/dotsgirls)
[Facebook](https://www.facebook.com/dots%E5%A5%B3%E5%AD%90%E9%83%A8-457992851057604/)

私たちの戦いはこれからです＼(^o^)／
良い年末を＼(^o^)／