自前のVPSで遊ぶノ篇 これが完全仮想化ってことか?

KVMで仮想な環境を作ってる最中ざんす。

メモリを4GB積んでるサーバーにメモリ1GBのVMを14個入れてるざんす。パンパンやで。
昨日の夜の状態はこんな感じだったのが

             total       used       free     shared    buffers     cached
Mem:       3973584    3840392     133192          0        620     398812
-/+ buffers/cache:    3440960     532624
Swap:      8207356         84    8207272

何があったか知らないが一晩寝かせてことこと煮込まれたのか

             total       used       free     shared    buffers     cached
Mem:       3973584    3845616     127968          0       8736      77744
-/+ buffers/cache:    3759136     214448
Swap:      8207356     576156    7631200

Swapが増えていた。

とりあえず14個のうちの2個のVMでセキュリティアップデートをしてみたらこんな具合になった。

             total       used       free     shared    buffers     cached
Mem:       3973584    3866716     106868          0        480     103236
-/+ buffers/cache:    3763000     210584
Swap:      8207356     764956    7442400

もうさすがに無理がありすぎーる。ただ原理はさっぱり分からないけど、HDDガリガリ君状態においてもOSによってはそれほど重さを感じないものもあったりして、いったいどういう事が起きてるんだって疑問があったりする。いっそのこと作れる限りのVMを作ってみようかなぁとか思ったけど、解決に向かう訳でもなく、ただ単にSwapが増えていって重たくなるだけだろうからやめました。

OSによっては何故か軽く動いたりするってことを確認するのもVMは14個のままでも十分可能だろうし。

時間を有効に使おう~。ってことで基本的には積んでるのが4GBなんで、VMは2台だけstartさせておき、ホストサーバーも十分メモリが使えるように2GBは余裕を持たせておくという感じにしようかと思う。まぁいたって普通です。

 

それでは突然だけれど予定していたUnixBenchをやってみようと思う。2個のVMにはFreeBSD9とCentOS6を選んだ。それなりに比較できるし。
2個のVMを起動したあとのホストサーバーのメモリ状況はこんな感じ。

root@takeken:/home/takeken# free
             total       used       free     shared    buffers     cached
Mem:       3973584    1833424    2140160          0      76856     711352
-/+ buffers/cache:    1045216    2928368
Swap:      8207356          0    8207356

余裕っちだ。

まずはFreeBSDの場合はPerlを入れればOKなので、fetchでUnixBenchをゲットしてきて、pkg_add -r perlを入れたら実行可能となる。んでグラフィック関連の記述をコメントアウトしてmakeして実行ずら。

MinimalでインストールしたCentOSには割といろいろ入れる必要があり、perl-Time-HiRes、gcc、make、wgetやらをインストールしました。あとは同じくグラ関係をコメントアウトしてmakeして実行ずら。

仮想環境で試していた結果を踏まえると、大幅にCentOSの方がTotalでは数値が高いはずなので、FreeBSDのFile操作関連が異常に低い。わたしには未来が見える、未来は絶対なのです。予想どおりに結果はこんな感じだった。

FreeBSD9
Benchmark Run: Thu Dec 05 2013 19:47:05 - 20:15:27
unknown CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       15904978.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2688.3 MWIPS (10.0 s, 7 samples)
Execl Throughput                               3361.2 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         13554.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           17820.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks         12331.5 KBps  (30.1 s, 2 samples)
Pipe Throughput                             1280179.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 325652.7 lps   (10.0 s, 7 samples)
Process Creation                               8554.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   7070.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    956.0 lpm   (60.1 s, 2 samples)
System Call Overhead                         718178.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   15904978.9   1362.9
Double-Precision Whetstone                       55.0       2688.3    488.8
Execl Throughput                                 43.0       3361.2    781.7
File Copy 1024 bufsize 2000 maxblocks          3960.0      13554.0     34.2
File Copy 256 bufsize 500 maxblocks            1655.0      17820.0    107.7
File Copy 4096 bufsize 8000 maxblocks          5800.0      12331.5     21.3
Pipe Throughput                               12440.0    1280179.6   1029.1
Pipe-based Context Switching                   4000.0     325652.7    814.1
Process Creation                                126.0       8554.8    678.9
Shell Scripts (1 concurrent)                     42.4       7070.6   1667.6
Shell Scripts (8 concurrent)                      6.0        956.0   1593.4
System Call Overhead                          15000.0     718178.8    478.8
                                                                   ========
System Benchmarks Index Score                                         419.3
CentOS6
Benchmark Run: 木 12月 05 2013 20:15:40 - 20:43:53
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       34201132.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3623.1 MWIPS (9.9 s, 7 samples)
Execl Throughput                               4021.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        719670.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          207247.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1998650.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1591432.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 294792.7 lps   (10.0 s, 7 samples)
Process Creation                              12291.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   4962.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    656.0 lpm   (60.1 s, 2 samples)
System Call Overhead                        2476097.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   34201132.5   2930.7
Double-Precision Whetstone                       55.0       3623.1    658.7
Execl Throughput                                 43.0       4021.4    935.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     719670.6   1817.4
File Copy 256 bufsize 500 maxblocks            1655.0     207247.6   1252.3
File Copy 4096 bufsize 8000 maxblocks          5800.0    1998650.6   3445.9
Pipe Throughput                               12440.0    1591432.9   1279.3
Pipe-based Context Switching                   4000.0     294792.7    737.0
Process Creation                                126.0      12291.8    975.5
Shell Scripts (1 concurrent)                     42.4       4962.3   1170.4
Shell Scripts (8 concurrent)                      6.0        656.0   1093.4
System Call Overhead                          15000.0    2476097.6   1650.7
                                                                   ========
System Benchmarks Index Score                                        1318.1

数値の高さとかに関しては、昔にVMwareでホストサーバーを作ってテストした時と同じなのでとくに驚くとこではないけど、ホストサーバーが仮想であっても物理サーバーでも、VMの負荷テストの結果が変わらないってことは驚くべき点だった。完全仮想化ってのはこういうことなのかと。

うーむ、サーバーを作った動機が物理サーバーだとレスポンスがいいのかなぁと思ってここまでやってきたので、ここでとりあえずここがゴール地点だったりする(笑) さて、ここからどうしよっかな。

CPUとストレージは共有だから、その辺は絶対影響があるはずだけど、その辺りの検証はちょっと難しいだろうしなあ。せっかくだからOpenStackでも試してみようかなとか思ったり。

 

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *