トップ回答者
Hyper-V上でのOracle動作

質問
-
当方 Hyper-V上にWindows2003Serverをインストールし、Oracleを動作させて
いますが、パフォーマンスが上がりません。 ベンチマークソフトで計測した値が
CPU、メモリ、ディスクなど全てが劣る実マシンよりも3倍以上パフォーマンスが
悪いです。(レスポンスタイムが3倍以上)
環境としてはアプリケーションサーバ(Windows2003)とデータベースサーバ
(Windows2003)の連携は問題無さそうなのですが、データベースサーバのCPU
使用率が70%程度で頭打ちし、CPUをフルに使っていないような状況です。
ディスク接続はiSCSIのストレージに接続しています。
回答
-
CPUは問題なさそうですね。
情報が少ないので、想像ですが物理IOがネックとなっているよう気がします。
まずHyper-Vは無印のHyper-Vでしょうか?(Win2008)
それとも、Hyper-V2.0でしょうか?(Win2008 R2)
仮想HD(VHD)は固定かパススルーディスクでしょうか?
iSCSIのストレージとのことですが、ネットワーク帯域はどうなっていますか?
(帯域を共有したり、100MBpsとか。。)
統合サービスは導入済みでしょうか?
仮想HDやHyper-V関連プログラムがあるディレクトリ、ファイルはウィルス対策ソフトの
保護対象から外していますか?
ホストOSで何か重い処理をしたりしていませんか?
以上、思いつく限りのIOに関連するパフォーマンス劣化要因を挙げてみました。
蛇足ですが、
DBを仮想環境上で動作させる場合、特にシビアな性能を要求される場合は
物理環境での運用も考慮するといいかなと思います。
参考:Hyper-V 仮想化テクノロジを使用した 仮想マシンの展開のベスト プラクティス
http://technet.microsoft.com/ja-jp/virtualization/ee155470.aspx- 回答としてマーク 三沢健二Moderator 2010年3月25日 6:14
-
tenkiです。
野良さんと同様に物理IOがネックになっていると思っているのですが、
気になるのはCPUが70%というところ。
仮に現状Hyper-V上のDbサーバがCPUを70%使っているとして、
物理IOが早くなってCPUを100%使えるようになっても、レスポンスが300%改善するとは思えないんですよね。
とりあえずは Hyper-Vのハードウェアのスペックと、比較対象の元の物理DBサーバのスペック、
Hyper-V上のDBサーバに割り当てているリソース情報と
同一物理サーバ上にある他の仮想マシンの情報を出来るだけ詳細に書いていただけると
何かヒントに情報がでてくるかもしれませんね。- 回答としてマーク 三沢健二Moderator 2010年3月25日 6:15
すべての返信
-
CPUは問題なさそうですね。
情報が少ないので、想像ですが物理IOがネックとなっているよう気がします。
まずHyper-Vは無印のHyper-Vでしょうか?(Win2008)
それとも、Hyper-V2.0でしょうか?(Win2008 R2)
仮想HD(VHD)は固定かパススルーディスクでしょうか?
iSCSIのストレージとのことですが、ネットワーク帯域はどうなっていますか?
(帯域を共有したり、100MBpsとか。。)
統合サービスは導入済みでしょうか?
仮想HDやHyper-V関連プログラムがあるディレクトリ、ファイルはウィルス対策ソフトの
保護対象から外していますか?
ホストOSで何か重い処理をしたりしていませんか?
以上、思いつく限りのIOに関連するパフォーマンス劣化要因を挙げてみました。
蛇足ですが、
DBを仮想環境上で動作させる場合、特にシビアな性能を要求される場合は
物理環境での運用も考慮するといいかなと思います。
参考:Hyper-V 仮想化テクノロジを使用した 仮想マシンの展開のベスト プラクティス
http://technet.microsoft.com/ja-jp/virtualization/ee155470.aspx- 回答としてマーク 三沢健二Moderator 2010年3月25日 6:14
-
tenkiです。
野良さんと同様に物理IOがネックになっていると思っているのですが、
気になるのはCPUが70%というところ。
仮に現状Hyper-V上のDbサーバがCPUを70%使っているとして、
物理IOが早くなってCPUを100%使えるようになっても、レスポンスが300%改善するとは思えないんですよね。
とりあえずは Hyper-Vのハードウェアのスペックと、比較対象の元の物理DBサーバのスペック、
Hyper-V上のDBサーバに割り当てているリソース情報と
同一物理サーバ上にある他の仮想マシンの情報を出来るだけ詳細に書いていただけると
何かヒントに情報がでてくるかもしれませんね。- 回答としてマーク 三沢健二Moderator 2010年3月25日 6:15
-
> 固定長にすれば10%以上速度が上がりましたが、要件には
> 全然足りません。
可変から固定にすることでIOパフォーマンスが向上します。
それにより速度が向上したということから、現状ボトルネックは物理IOにあると思います。
Win 2008 R2では、仮想HDD周りのパフォーマンス改善が行われています。
R2で、物理IO周りは物理環境にだいぶ近づいたと個人的には思っています。
以下、Oracleに疎いので多少的外れかもしれません。
OSに複数VHD(可能であればVHDを配置する物理ドライブも分散できたらいいのですが。。)を
あたっちし、Oracleのデータファイルを複数VHDに分散させるようにする。
パーティションテーブルを作成し、複数VHDに配置する。
などの、一般的に物理IOが厳しい場合の処置を検討してみるといいかもしれません。 -
参考になるか分かりませんが、
親OSが動作しているシステム用HDDと
DBサーバーが使用しているHDDは同一でしょうか?
もし同一の場合、更にActive Directory機能 を
一緒にインストールされていませんでしたでしょうか?
そして、Active Directory をインストールされている状態であれば、
当該マシンがPDC又はBDCになってしまっていませんでしょうか?
当該マシンがPDC又はBDCになる事でディスクキャッシュが無効となり
HDDアクセス速度が極端に遅くなった経験があります。- 回答の候補に設定 三沢健二Moderator 2010年3月25日 6:15
-