KVMで仮想な環境を作ってる最中、ざんす。で、環境を幾つか立ち上げている間のメモリってどうなってんだろうかっていう疑問。
休みのうちに20個のゲストOSを作るぞーっと意気込んでたんだけど、今やっと14個作ったとこ。
Id Name State
----------------------------------------------------
1 t1001 running
2 t1002 running
3 t1003 running
4 t1004 running
5 t1005 running
6 t1006 running
7 t1007 running
8 t1008 running
9 t1009 running
10 t1010 running
11 t1011 running
12 t1012 running
13 t1013 running
14 t1014 running
だがとあることを考えてから、ここからさらに増やすかどうか迷ってきた。
何かというとメモリーについてだにゃ。
FreeでみるとSwapつかいまくりーのたらんてぃーのなんです。そりゃあホストのPCに乗ってるメモリーは4Gで、仮想サーバーの方は1G使うVMを13.5個(1個目は間違えて512MBにしちゃった)も作ってるんだから、普通に考えたらそうなるのは当たり前だのな。
なにかしようものならガリガリ・・・ガリガリ・・・とHDDを読む、読む、読むノーグルト。
うーむ。
だがしかし、VMの起動直後はパツパツでも物理メモリ内に収まっているってのも不思議だ。
まったくさっぱりこってり分からない。
どうしたもんだろう。
積んでるメモリからいくと、なにかしら遊ぶならVMは2個か3個くらいに抑えておいて検証するのがいいんだろう、もしももっと作っても大丈夫としても、HDDをガリガリしすぎて検証にならないような。万が一なったとしても処理が重すぎてこっちのストレスがマックスハートである。
でも前はホストサーバーまで仮想環境な環境でVMは5個くらい作って試していたんだけど、なぜかその時ってそれほどガリガリしてなかったような気もするんだな。ただそんな気のせいなだけで、428&街現象が起こっていて、昔は良かったねって感じているだけかもしれない。またもや謎というものにまみれてしまった。
とりあえずゲストOSを起動していったときのメモリの状況はこんな感じ。だいたい12個目からもうSwapしてる。
起動したVMの数ごとのFreeの変化
1台目 freebsd
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 558560 3415024 0 23132 245772
-/+ buffers/cache: 289656 3683928
Swap: 8207356 0 8207356
2台目 freebsd
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 699132 3274452 0 23204 284064
-/+ buffers/cache: 391864 3581720
Swap: 8207356 0 8207356
3台目 freebsd
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 844184 3129400 0 23340 319784
-/+ buffers/cache: 501060 3472524
Swap: 8207356 0 8207356
4台目 freebsd
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 989568 2984016 0 23436 355712
-/+ buffers/cache: 610420 3363164
Swap: 8207356 0 8207356
5台目 freebsd
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 1133636 2839948 0 23516 392232
-/+ buffers/cache: 717888 3255696
Swap: 8207356 0 8207356
6台目 freebsd
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 1283880 2689704 0 23680 431096
-/+ buffers/cache: 829104 3144480
Swap: 8207356 0 8207356
7台目 centos
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 1786036 2187548 0 23760 604576
-/+ buffers/cache: 1157700 2815884
Swap: 8207356 0 8207356
8台目 centos
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 2164680 1808904 0 23816 698112
-/+ buffers/cache: 1442752 2530832
Swap: 8207356 0 8207356
9台目 centos
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 2660504 1313080 0 23892 871508
-/+ buffers/cache: 1765104 2208480
Swap: 8207356 0 8207356
10台目 centos
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 3152232 821352 0 24104 1039008
-/+ buffers/cache: 2089120 1884464
Swap: 8207356 0 8207356
11台目 Ubuntu13
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 3821312 152272 0 15024 1293724
-/+ buffers/cache: 2512564 1461020
Swap: 8207356 0 8207356
12台目 Ubuntu12
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 3823004 150580 0 5788 981984
-/+ buffers/cache: 2835232 1138352
Swap: 8207356 84 8207272
13台目 Scientfic
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 3840088 133496 0 2516 678828
-/+ buffers/cache: 3158744 814840
Swap: 8207356 84 8207272
14台目 Scientfic
takeken@takeken:~$ free
total used free shared buffers cached
Mem: 3973584 3840392 133192 0 620 398812
-/+ buffers/cache: 3440960 532624
Swap: 8207356 84 8207272
そしてVM側はこんな感じだ。もちろん起動後のすぐの状態。
VMじたいのメモリの状況
14台目のVM
[root@t1014 ~]# free
total used free shared buffers cached
Mem: 1020596 124868 895728 0 5508 37444
-/+ buffers/cache: 81916 938680
Swap: 2064376 0 2064376
2台目のVM
root@t1002:~ # vmstat memory
procs memory page faults cpu
r b w avm fre flt re pi po fr sr in sy cs us sy id
1 0 0 203M 934M 39 0 0 0 38 0 1 48 221 0 0 100
root@t1002:~ # swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 803192 0 803192 0%
うーん。どうしたもんだろうなあ。
KVMにまだ知らないなにかの機能があるのだろうか。
とりあえず今日はこの辺で終わろうかな。