かけがえのない日々

なんややんや。にょろにょろ。

ボトルネック【I/O】

2006年05月04日 | unix
■ディスクI/Oボトルネックの測定(Linuxの場合)
# vmstat 1 5
   procs                      memory    swap          io     system         cpu
 r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
 0  0  0   3604   3580  23580 187696   0   1     0     1    1     1   0   0   1
 0  0  0   3612   3580  23592 187636   0   8   148    96 1432   291   0   7  93
 0  0  0   3612   3484  23624 187756   0   0   312   332 1376   321   0  10  90
 0  0  0   3620   3456  23616 187772   0   8   164    80 1301   320   0   6  94
 0  0  0   3620   3600  23636 187772   0   0   488    64 1340   318   0   8  91

ここではbi/boの部分を見ます。bi: Blocks received from a block device (blocks/s).
, bo: Blocks sent to a block device (blocks/s)。どのくらいが適正値かというのは予算によります。一番お金をかけた場合だとストレージのキャッシュが十分に積まれていて、どんなにディスクにアクセスしてもbi/boが0というパターンになります。(きちんとディスクに書き込みを完了する前にドライブが書き込み完了を返す)


ボトルネック【ネットワーク】

2006年05月04日 | unix
■ネットワークボトルネックの測定(UNIXの場合)
# netstat -an | wc -l
3050

この数字がTCPコネクション数とほぼ同等です(厳密にはESTABLISHED,TIME_WAIT,FIN_WAIT等の総数。余計な部分は許容誤差ということで)。


ボトルネック【CPU】

2006年05月04日 | unix
■CPUボトルネックの測定(UNIXの場合)
# top
151 processes: 150 sleeping, 1 running, 0 zombie, 0 stopped
CPU0 states:  0.4% user,  0.5% system,  0.0% nice, 98.1% idle
CPU1 states:  0.1% user,  0.5% system,  0.0% nice, 98.4% idle
Mem:   513596K av,  442136K used,   71460K free,       0K shrd,   77992K buff
Swap: 1044184K av,   14120K used, 1030064K free                  208420K cached

CPU0と1の2個があって、それぞれidleが98%以上なので問題ないですね。

# w

12:08pm  up 171 days,  1:20,  1 user,  load average: 1.22, 1.02, 1.97

ロードアベレージは処理を待っているプロセスの平均数


ボトルネック【メモリ】

2006年05月04日 | unix
■メモリボトルネックの測定(Linuxの場合)
# top
151 processes: 150 sleeping, 1 running, 0 zombie, 0 stopped
CPU0 states:  0.4% user,  0.5% system,  0.0% nice, 98.1% idle
CPU1 states:  0.1% user,  0.5% system,  0.0% nice, 98.4% idle
Mem:   513596K av,  442136K used,   71460K free,       0K shrd,   77992K buff
Swap: 1044184K av,   14120K used, 1030064K free                  208420K cached

512MBのメモリを搭載しているマシンで、442M程度のメモリを使用していて70M程度のメモリしか空きがない、と読み取れますが、それは厳密には間違いです。もっと見てみましょう。

# free
             total       used       free     shared    buffers     cached
Mem:        513596     443556      70040          0      78340     209196
-/+ buffers/cache:     156020     357576
Swap:      1044184      14120    1030064

Linuxの場合空いるメモリはすべてCacheにまわそうとします。それがtopに出てくる数字です。では空いているメモリでCacheで使われている分を減らした分はどのくらいかを調べるにはfreeコマンドでの実行結果の2行目を見ます。これを見ると357MBくらい空いているのがわかります。よってこのマシンはメモリに大分余裕があると見ることができます。

※参考http://nosa.cocolog-nifty.com/sanonosa/cat1060251/index.html