参考先
1 | ZabbixでLAMPサーバを監視設定メモ(Zabbix 2.4 CentOS6.6) |
2 | linuxで空きメモリがどんくらいあるか確認する方法 |
3 | apacheの prefork.cとworker.cの違い |
ロードアベレージ
$ uptime 20:17:05 up 7:05, 1 user, load average: 0.57, 0.15, 0.04
過去1分、5分、15分の間にどの程度の処理(プロセス)が待ち状態にあったかを示している。
ロードアベレージがCPUのコア数を超えている場合は処理待ちが発生していると判断
処理待ちが発生する原因は2つ「CPU負荷が高い」または「ディスクI/O負荷が高い」
目安 2CPUまたは2コアの場合、ロードアベレージが「2」を超えたらトリガーが発生
参考先-1
CPU使用率
$ sar Linux 2.6.32-573.7.1.el6.x86_64 (zab.example.com) 03/01/16 _x86_64_ (2 CPU) 04:11:46 LINUX RESTART 13:20:01 CPU %user %nice %system %iowait %steal %idle 13:30:01 all 0.11 0.00 0.30 0.64 0.00 98.95 13:40:01 all 0.10 0.00 0.28 0.24 0.00 99.37 13:50:01 all 0.10 0.00 0.27 0.31 0.00 99.31 14:00:01 all 0.10 0.00 0.27 0.23 0.00 99.40 14:10:01 all 0.10 0.00 0.27 0.22 0.00 99.40
idle CPUがディスクI/Oなどで待たされることなく、アイドル状態で消費した時間の割合
目安 CPUの未使用率(idle)が10%を下回ったらトリガーが発生
参考先-1
CPUのディスクI/O待ち
$ sar Linux 2.6.32-573.7.1.el6.x86_64 (zab.example.com) 03/01/16 _x86_64_ (2 CPU) 04:11:46 LINUX RESTART 13:20:01 CPU %user %nice %system %iowait %steal %idle 13:30:01 all 0.11 0.00 0.30 0.64 0.00 98.95 13:40:01 all 0.10 0.00 0.28 0.24 0.00 99.37 13:50:01 all 0.10 0.00 0.27 0.31 0.00 99.31 14:00:01 all 0.10 0.00 0.27 0.23 0.00 99.40 14:10:01 all 0.10 0.00 0.27 0.22 0.00 99.40
iowait CPUがディスクI/O待ちのためにアイドル状態で消費した時間の割合
目安 CPUのI/O待ち(iowait)が90%を超えたらトリガーが発生
参考先-1
ディスクI/O
$ iostat -dkt 5 3 Linux 2.6.32-573.7.1.el6.x86_64 (zab.example.com) 03/01/16 _x86_64_ (2 CPU) 03/01/16 20:21:09 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 7.92 5.56 130.16 143185 3354233 dm-0 33.00 5.36 130.16 138177 3354208 dm-1 0.01 0.05 0.00 1200 0 03/01/16 20:21:14 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 13.80 2.40 252.80 12 1264 dm-0 63.20 0.00 252.80 0 1264 dm-1 0.00 0.00 0.00 0 0 03/01/16 20:21:19 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.20 0.80 3.99 4 20 dm-0 1.20 0.80 3.99 4 20 dm-1 0.00 0.00 0.00 0 0
Blk_read/s 1秒間のディスクの読み込み量(ブロック/秒)
Blk_wrtn/s 1秒間のディスクの書き込み量(ブロック/秒)
/usr/bin/iostatコマンド
参考先-1
メモリ使用率
$ free total used free shared buffers cached Mem: 630888 572336 58552 6308 117664 132764 -/+ buffers/cache: 321908 308980 Swap: 1023996 0 1023996
トータル領域 | Memのtotal | |
実質空き領域 | "-/+ buffers/cache:" のfree | |
実質メモリ使用率 | (トータル領域-実質空き領域) ÷ トータル領域 × 100 |
目安 実質的なメモリ使用率が90%を超えたらトリガーが発生
スラッシング
メモリ不足の為、Swapと実メモリの行き来が大量に発生して、処理が遅延する現象。
vmstatコマンドの si , so が多発していたらスラッシングが発生している。
$ vmstat 2 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 0 58192 117904 132952 0 0 3 67 62 82 0 0 99 1 0 0 0 0 58208 117904 132972 0 0 0 0 73 82 0 0 100 0 0 0 0 0 58208 117912 132972 0 0 2 750 117 122 0 0 98 2 0 0 0 0 57740 117912 132980 0 0 0 18 222 297 1 1 98 0 0 0 0 0 57788 117912 132980 0 0 0 0 168 274 0 1 99 0 0
参考先-2
スワップメモリ使用率
$ free total used free shared buffers cached Mem: 630888 572336 58552 6308 117664 132764 -/+ buffers/cache: 321908 308980 Swap: 1023996 0 1023996
Linuxでのスワップはメモリが満杯である場合に、メモリ内の活動していないページ(データ)がハードディスクのスワップ領域に移動される 。
スワップの発生状況は free コマンドのSwapのusedで確認できる。スワップメモリ使用率は、Swapの(total - used) ÷ total × 100 で算出。
目安 スワップメモリの使用率が10%を超えたらトリガーが発生
参考先-1
Apache(HTTP/HTTPS)
$ ps aux | grep httpd | grep -v grep | grep -v root | wc -l 8
WEBサイトに現在どのくらい同時接続がされているかを把握する
Apacheの最大同時接続数の確認
$ /usr/sbin/apachectl -V | grep "Server MPM" Server MPM: Prefork
Apacheがどっちの型で動いているか確認(preforkかworker)
$ cat /etc/httpd/conf/httpd.conf | egrep 'MaxClients|prefork|worker' | grep -v "^#" <IfModule prefork.c> MaxClients 256 <IfModule worker.c> MaxClients 300
最大同時接続数を確認。上記の場合、ApacheがPreforkなので同時接続数は256
参考先-1、3
WEBサイトのレスポンスタイム
$ curl -s -o /dev/null -w "%{time_total}\n" http://web1.example.com/ 0.022
WEBサイトのレスポンスタイムは curl コマンド等で確認することができる
参考先-1