purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

サーバの負荷を監視する。

via
http://d.hatena.ne.jp/naoya/20070222/1172116665


ざっくりとだとこんな流れ

* "負荷が高い"というときにロードアベレージを見て数字が高い
* CPU 使用率を見たところ idle は結構ある
* のでボトルネックは CPU ではなく他が考えられる
* vmstat でメモリの利用状況をみたらページアウトしまくってる
* 搭載メモリが足りないよ


via
http://nosa.cocolog-nifty.com/sanonosa/2004/06/post.html


具体的には

サーバのボトルネックには大体4つの原因があるらしい

  • CPU使用率
  • メモリ使用量
  • ディスクI/O
  • TCPコネクション数
外部公開サーバだと

Yahooトップに載った時とか、アクセス数が増えてメモリ量が減ってロードアベレージがあがった事があった

内部サーバだと

大量のファイルをアップロードすることで、ディスクioに負荷がかかってロードアベレージがあがった事があった。

調査に便利なコマンド

topコマンド

ロードアベレージの値や、メモリ使用料、CPU使用率を見れる。

# top
top - 18:25:12 up 16 days,  3:02,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 108 total,   2 running, 106 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  4.3%sy, 33.6%ni, 61.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.3%st
Mem:    524288k total,   447768k used,    76520k free,    57164k buffers
Swap:  1081336k total,     1624k used,  1079712k free,   184380k cached

ロードアベレージは基本は1未満で、10以上だとちょっと辛い、20以上だともっさりになるイメージ
freeコマンド - メモリ空き容量調査

2行目を見ると

# free
             total       used       free     shared    buffers     cached
Mem:        524288     447148      77140          0      57364     184380
-/+ buffers/cache:     205404     318884
Swap:      1081336       1624    1079712

2行目のfreeが実際の空き容量、約318MBなので余裕
vmstat - ディスクI/O調査
# vmstat 1 10
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   1624  77156  57448 184400    0    0   124    15    9   23  0  0 99  1  0
 0  0   1624  77156  57448 184424    0    0     0     0   31   31  0  0 100  0  0
 0  0   1624  77156  57448 184424    0    0     0     0   25   27  0  0 100  0  0
 0  0   1624  77156  57448 184424    0    0     0     0   32   33  0  0 100  0  0
 0  0   1624  77156  57448 184424    0    0     0     0   24   27  0  0 100  0  0
 0  0   1624  77148  57460 184412    0    0     0    76   35   49  0  0 100  0  0
 0  0   1624  77148  57460 184412    0    0     0     0   23   28  0  0 100  0  0
 0  0   1624  77148  57460 184424    0    0     0     0   28   32  0  0 100  0  0
 0  0   1624  77148  57460 184424    0    0     0     0   27   26  0  0 100  0  0
 0  0   1624  77156  57460 184424    0    0     0     0   26   30  0  0 100  0  0

不可がかかってる時はboの値が3000とかいってた