2006年12月12日火曜日

WebLogicと仮想化

BEA、仮想化技術に対応したJava APサーバ「WebLogic Server Virtual Edition」を発表

ぬあ?と思って読んでしまったニュース。
WebLogicが仮想マシン上で直接稼動??何じゃそりゃ???といった感じ。

VMWareにおけるHypervisorの説明(Hypervisor, part of ESX Server virtualization)を読むと、どうやらHypervisorとは仮想化レイヤを抽象化する(<=書いてて「んあんじゃそりゃ!?」と一瞬思う)物らしい。Hypervisorより下にはOSが無く、直接H/Wらしい。

そうすると、ここからは想像だが、WebLogic Server Virtual Editionのスタック構造は以下の様になると思われる。
  1. WebLogic Server (Java based middleware: 以下WLS)
  2. JRockit (Java VM)
  3. Liquid VM (a replacement of a normal VMWare's virtual machine)
  4. VMWare Hypervisor
  5. H/W

まぁ、仮想化云々はとりあえず置いておくと、この構図が真だとすれば、以下の等式が成り立つ様な構造が出来上がることになる。

WLS + JRockit + Liquid VM = Applications + OS + VMWare VM

つまり、WLS Virtual Editionはある仮想化された空間で唯一稼動するプロセスであり、その中でJavaのスレッドが動作することになる。イメージとしては、シングルプロセス内に複数のタスク(要するにスレッド)が稼動するμITRONアプリケーションみたいな感じだろうか。

ん?本当か?

ただ、理論的に上記のやり方を行うメリットは裏付けることが出来ると思う。

まず、WLSをVMWare VM上のOS内で稼動させると、WLSはJava VM上で稼動しかつJava VMは1つのプロセスとして稼動するから、OS内で発生するプロセススケジューリングによるコンテキストスイッチ、それに伴うパフォーマンス劣化が避けられない。

しかし、WLS Virtual Editionでは、WLS及びそこに搭載された全てのアプリが単一プロセスとして動作し、スレッド切り替え時にもコンテキストスイッチは発生しない。従って、WLS上で稼動するアプリのパフォーマンスは、確実に上がると思われる。

なるほど。確かに面白いかも知れない。

# VMWare ESX Serverについて知れたのも収穫

0 件のコメント: