2011年 4月 29日 はてなブックマーク -
タグ: #LXC #CentOS #Linux #仮想化

VPSの性能について – LXCは速い

2011年4月13日(水)yamamoto - 

みなさん、こんにちは、JWHの技術担当山本です。

弊社では、LXC(Linux Container)と言う技術をVPSホスティングで用いるため世界に先駆けて実用化する事に成功しました。おおよそ1年前から試行錯誤を重ねて検証を 続けてきましたが、ようやくお披露目の日を迎える事が出来ました。LXCはなんと言っても、Kernelのメインストリームにおいて開発が進められている のが強みです。

Linux Kernelは日々驚異的な勢いで開発が進んでおり、現在は1000万行を超えるソースコードから成り立っています。Kernel開発者は性能向上のため 頻繁に特定の機能を再設計/実装する事が良くあります。その様な場合、性能が大きく向上する事がありますが、「メインストリームに取り込まれている」と言 う事は、その新しい性能向上のための実装が、全体として調和する様にKernelの開発者に常に意識されている事を意味し、Linuxの世界においては非 常に大きなアドバンテージとなります。

それに対して独自にKernelを修正して機能を実現している様なプロジェクトはKernelの抜本的な変化に追従するための、場合によっては大量の追加開発を強いられる事になります。

最近、Linux Kernelはいっそう速いペースで開発が続けられており、頻繁に性能改善を伴った新しいバージョンをリリースしていて、うちの技術部でも新しいKernelのベンチマークをわくわくしながら取ったりしています。

前置きが長くなりましたが、今回は皆さんに弊社のLXCによるVPSのパフォーマンスを紹介したいと思います。


 

Hardware Node



Name Virtuozzo-host Lxc-host
CPU X3440 2.53GHz X3440 2.53GHz
BogoMips 5066.8  5066.8
Threads 8
Kernel Version 2.6.18-028stab085.3 2.6.32.36-jwh-sm_64

glibc-2.5
CentOS5.5 based
glibc-2.5
CentOS5.5 based
Dhrystone 2 using register variables 5039.5 5076.6
Double-Precision Whetstone 3533.3 3581.0
Execl Throughput 4903.2 7087.6
File Copy 1024 bufsize 2000 maxblocks 1437.2 3394.8
File Copy 256 bufsize 500 maxblocks 777.8 1636.0
File Copy 4096 bufsize 8000 maxblocks 2308.4 6821.2
Pipe Throughput 7192.8 8141.9
Pipe-based Context Switching 5803.2 5732.8
Process Creation 4109.0 6666.5
Shell Scripts (1 concurrent) 7823.2 9980.2
Shell Scripts (8 concurrent) 7740.8 9711.1
System Call Overhead 8590.6 7943.4
====== ======
System Benchmarks Index Score 4060.7 5697.2
 

VPS Node



Plan PVZ4
(PVZ最下位)
PVZ1
(PVZ最上位)
LXC1
(LXC最上位)
LXC1
(LXC最上位)

glibc-2.5
CentOS5.5 based
glibc-2.5
CentOS5.5 based
glibc-2.12
FC14 based
glibc-2.5
CentOS5.6 based
Dhrystone 2 using register variables 3863.9  4965.2 9243 4770.1
Double-Precision Whetstone 1751.2  3550.2 3799.2 3430
Execl Throughput 2046.4  4418.3 5934.8 6036.9
File Copy 1024 bufsize 2000 maxblocks 735.8  1525.2 4960.8 5161.5
File Copy 256 bufsize 500 maxblocks 552.6  1028.2 2016.9 2435.7
File Copy 4096 bufsize 8000 maxblocks 1350.3  2648.6 7640.3 10484.8
Pipe Throughput 3045.1  7321.7 5665.9 5563.6
Pipe-based Context Switching 2623.3  5432.0 4398.8 4329.4
Process Creation 2009.1  3180.1 5116.1 5310.5
Shell Scripts (1 concurrent) 2556.4  6084.2 6110.5 8401.2
Shell Scripts (8 concurrent) 2781.1  6102.3 5939 8327
System Call Overhead 1672.9  8416.4 5491.8 5572.1
====== ====== ====== ======
System Benchmarks Index Score 1834.3  3910.4 5215.3 5424.5





※ 全て弊社稼働中のサーバ上で UnixBench 5.1.3の ./Run を引数無しで実行した結果です(1 thread時の結果を省いています)。
※ 1 thread時の結果はどの環境でも概ね1500前後でした。



※ LXC1 VPSゲスト環境では弊社全サーバで採用している構成下でのLinux Kernel 2.6.32.36 のビルド時間がなんと2分を切りました。
以下がその際の出力です。是非一度この快適さをお試し頂ければなぁと思います。

[root@lxcguest1 linux-2.6.32.36]# uname -a
Linux lxcguest1 2.6.32.36-jwh-sm_64 #1 SMP Sun Apr 10 16:37:32 JST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@lxcguest1 linux-2.6.32.36]# time make -j 8
・ ビルド時の出力は省略
real 1m50.676s
user 13m48.400s
sys 1m8.590s

 

メインストリームで開発されていると言う事の強みがよくわかる結果になっているかと思います。

やはり、2.6.30で追加されたファイルシステムにおける大幅な性能改善(※1)や、2.6.32で追加された数々の大幅な性能強化(※2)が効いていて、未だにRedhat5系列をベースとするVirtuozzo(OpenVZ)とは一線を画している様に思います。

※1

※2

上記はどれも読んでいて楽しくなる様な大きな性能改善に関するものばかりです。ご興味のある方はどうぞ。

我々ホスティング事業者にとってLinuxとそれに纏わるOSSは楽しみの絶えない、また、大きなパワーをもたらしてくれる原動力であると言えま す。うちではKernelの勉強会を社内でやっていてRobert Love(Googleのエンジニア)著 Linux Kernel Developmentを題材にしてLinux Kernelの細部まで研究しています。

今後も不定期で弊社で取り組んでいる技術的な内容を取り上げて「技術部ブログ」として投稿して行く予定ですので、楽しんで頂ければ幸いです。ありがとうございました。

株式会社 Joe’sウェブホスティング

1年前 | | 2011年 4月 29日 | このエントリーを含むはてなブックマーク