Oracle Database プラットフォーム・ガイド
10gリリース2(10.2) for Microsoft Windows(x64) B25695-04 |
|
この章では、Oracle Databaseが最善の環境で実行されるように、Windows Serverオペレーティング・システムをチューニングする方法について説明します。
この章の項目は次のとおりです。
Windows Serverオペレーティング・システムで提供されるチューニング調整用の設定は、UNIXよりもかなり少なくなっています。このため、システム管理者がWindows Serverのパフォーマンスの最適化のためにできることは限られますが、一方でWindows Serverは使用しやすいシステムです。
しかし、Windows ServerをOracle Database用のアプリケーション・サーバー環境として、より最適なものにする方法がいくつかあります。この章で説明しているオペレーティング・システム固有の手順を実行すると、ほとんどの場合、より多くのシステム・リソース(CPU、メモリー、ディスクI/Oなど)をOracle Databaseのために確保できます。
また、Oracle Databaseは、Windowsコンピュータのリソースを効率的に活用する高性能のデータベース管理システムであるため、次の用途で使用しないでください。
これらの構成では、ネットワーク、メモリーおよびCPUのリソースがかなり消費されます。さらに、Oracle Databaseを実行するWindowsコンピュータでは、頻繁にローカルでアクセスしたり、ローカル・ユーザーの処理で集中的に使用したりすることは、このようなアクティビティの処理に十分なリソースがある場合以外は避けてください。
ラージ・ページのサポートは、Oracle Database 10gリリース1(10.1)以上の機能です。ラージ・ページのサポートにより、メモリー集中型のデータベース・インスタンスのパフォーマンスが向上します。新たに導入されたオペレーティング・システム・サポートを利用することにより、Oracle Database 10gリリース1(10.1)以上では、プロセッサ・メモリー・アドレッシング・リソースをより効率的に利用できるようになりました。具体的には、ラージ・ページのサポートが有効になっていると、システムのCPUはRAM内のOracle Databaseバッファにより高速にアクセスできるようになります。4KBの増分でバッファにアドレッシングするかわりに、CPUは、データベース・バッファをアドレッシングする際に4MBのページ・サイズを使用するように指示されます。
この機能は、Oracleバッファ・キャッシュが数GBである場合に特に役立ちます。これより小さいサイズの構成でも、ラージ・ページを使用する効果はありますが、データベースが大量のメモリーにアクセスしている場合ほど効果は大きくありません。
ラージ・ページ・サポートを有効にするには、システム管理者がoracle
ユーザーに対して「メモリー内のページのロック」権限を付与する必要があります。この権限は、Windowsインストール時のデフォルトでは有効になっていません。この権限を付与するには、次のようにします。
コントロール パネル・ウィンドウが開きます。
管理ツール・ウィンドウが開きます。
ローカル セキュリティ設定ウィンドウが開きます。
「ローカル セキュリティ ポリシーの設定」ダイアログが開きます。
「ユーザーまたはグループの選択」ダイアログが開きます。
oracle
ユーザーを選択します。
Windows Server 2003でラージ・ページを利用するには、物理メモリーの量を、パラメータ・ファイルで指定されているシステム・グローバル領域(SGA)の量より大きくする必要があります。
インスタンス起動時にラージ・ページが常に割り当てられるとはかぎりません。すべてのSGAがラージ・ページを使用して割り当てられるか、または通常のページを使用して割り当てられるかのいずれかです。
ラージ・ページ・サポートを有効にするには、次のようにします。
ORACLE_BASE
¥
ORACLE_HOME
¥bin¥oracle.key
に移動します。
oracle.key
を開き、見つかった値を記録します。これはOracle Universal Installerによって設定されます。デフォルトは次のとおりです。
SOFTWARE¥ORACLE¥KEY_HOME_NAME
C:¥> regedit
HKEY_LOCAL_MACHINE
に移動します。oracle.key
で見つかった値に対応するキーを見つけます。たとえば、デフォルトの場合、次のキーを探します。
HKEY_LOCAL_MACHINE¥SOFTWARE¥ORACLE¥KEY_HOME_NAME
デフォルトでは、Oracleによって、ラージ・ページの使用時に使用可能な最小限のラージ・ページ・サイズが割り当てられます。使用可能な最小限のラージ・ページ・サイズ(16MB)は、GetLargePageMinumum
ファンクションを使用して取得されます。
Windows Serverのインストール時にデフォルトで提供される設定の1つに、対話型のフォアグラウンド・アプリケーションに、各バックグラウンド・プロセスよりも高い優先度を与えるものがあります。サーバー・コンソール上のフォアグラウンド・アプリケーションがOracle Databaseのプロセッサ時間を取りすぎないように、フォアグラウンド・アプリケーションの優先度を低くできます。
Windowsのメモリー・マネージャは、システム・メモリーを表7-1で説明する3つの異なるプールに分割します。
プール | 合計メモリーに対する割合 |
---|---|
カーネルとその他のシステム・サービス |
9% |
ファイル・キャッシュ |
41% |
ページングされたメモリー |
50% |
Windows Serverのメモリー・マネージャは、物理RAMと仮想メモリー・ページング・ファイルとの間で動的にメモリーをページングすることにより、各アプリケーションのメモリー使用量のバランスをとろうとします。アプリケーションのメモリー消費が特に高い場合(Oracle Databaseのように)、または多数のアプリケーションが同時に実行される場合は、各アプリケーションのメモリー要件の合計が、物理メモリーの限界を超える可能性があります。
ファイル・キャッシュ用に確保されるメモリーの割合が大きいこと(41%)は、ファイル・サーバーとプリント・サーバーにとっては非常に有益です。しかし、メモリー集中型のネットワーク・アプリケーションを頻繁に実行するアプリケーション・サーバーにとっては有益ではないことがあります。システム・グローバル領域を介して独自のキャッシュを行うOracle Databaseには、Windows Serverのファイル・キャッシュはまったく不要です。
Windows Serverのメモリー・モデルを、大きなファイル・キャッシュを持つデフォルトのファイル・サーバーおよびプリント・サーバーから、ファイル・キャッシュを減らしてOracle Databaseでより多くの物理メモリーを使用できるネットワーク・アプリケーション・モデルにリセットできます。
「アプリケーション・サーバーとしてWindows Serverを構成」に説明されている方法でファイル・キャッシュのサイズを大幅に小さくした後、オペレーティング・システムのコア機能にとって不要なサービスを無効にすることにより、より多くの物理メモリーをOracle Databaseのために確保できます。不要なサービスには、次のものがあります。
その他の不要なサービスを識別するには、システム管理者に問い合せてください。
次のサービスは無効にしないでください。
重要なプロトコルにのみ処理時間が費やされるように、Windows上の不要なネットワーク・プロトコルはすべて削除します。
サーバー上にプロトコルを複数インストールする必要がある場合は、ネットワーク・プロトコルのバインド順序をリセットすることにより、Oracle Databaseで最も頻繁に使用されるプロトコルの優先順位を一番高く設定できます。
1台のWindowsコンピュータ上にパブリックおよびプライベートのネットワーク・インタフェース・カード(NIC)があり、正しい順序に設定されていない場合、gethostname
を使用する構成(Oracle Enterprise Managerなど)で問題が発生する可能性があります。
WindowsでプライベートNICが最初に検出されると、gethostname
コールはプライベート相互接続のホスト名を返します。どのツールがgethostname
をコールするとしても、この非パブリック・ネットワーク情報から生じる構成または接続の問題があります。
Windows 2000コンピュータ上で、次のように、NICの現在の順序を確認し、必要に応じて変更できます。
Microsoft社では、Service Packと呼ぶオペレーティング・システムのパッチを四半期ごとにリリースしています。Service Packは、Windows Serverの基本リリースに対する不具合の修正と製品拡張機能の集まりです。一般に、Service Packにより不具合が修正され、Windows Serverのパフォーマンスまたは機能を改善できるため、安全であることが確認されたらすぐに適用します。
Service Packは不具合を修正するためのものですが、新しい問題を引き起こす場合もあります。一般に、Service Packはリリース後2〜3週間待ってから実装する方が安全です。この間に、そのSPリリースに関する問題があれば、他の現場からレポートが上がるはずです。
最新版のWindows Server Service Packは、自己解凍形式アーカイブとしてhttp://support.microsoft.comからダウンロードできます。
Service PackがWindows Server上でエラーなしで機能することが保証されていないかぎり、Uninstall
ディレクトリを作成するようにします。これにより、Service Packを削除して元の構成に戻すことができます。
Service Packのファイルは、Windows Serverの元の構成内にある、同じ名前のファイルを上書きします。ただし、Service Packのファイルは、元のインストール・メディアからファイルをコピーするセットアップ・プログラムにより上書きされる可能性があります。
たとえば、新しいネットワーク・プロトコルやプリンタ・ドライバをインストールするには、通常、Windows Serverの元のインストール・メディアからファイルをコピーする必要があります。Service Packのファイルの全体または一部が上書きされた場合は、Service Packを再度適用する必要があります。
CPUおよびメモリーの速度と比較して、ハード・ディスク・ドライブは速度がきわめて遅くなります。ハード・ディスク・ドライブは比較的安価になっているため、Windows Serverでは、ストライプ化された物理ディスクで構成される論理ボリュームを使用することをお薦めします。データのストライプ化は、ファイルI/Oを同時に多数のハード・ディスク・ドライブに分散することにより、比較的速度の遅いハード・ディスク・ドライブの影響を少なくする効率的な手段です。
多数のディスクにわたるデータのストライプ化は、Redundant Array of Inexpensive Disks(RAID)の例です。RAIDには、高パフォーマンスを目的とするものから高信頼性を目的とするものまで、いくつかの種類があります。この種類は、RAIDレベルとも呼ばれます。Oracle Databaseのインストールで最も一般的な3つのRAIDレベルは、RAID-0、RAID-1およびRAID-5です。この3つのRAIDレベルについて、表7-2で説明します。この表では、各レベルの読込み時および書込み時のペナルティを示します。
RAIDレベル | 読込み時のペナルティ1 | 書込み時のペナルティ2 |
---|---|---|
0(ディスクのストライプ化) |
1:1 |
1:1 |
1(ディスクのミラー化) |
1:1 |
2:1 |
0 + 1 |
1:1 |
2:1 |
5(分散データ保護) |
1:1 |
4:1 |
1
読込み時のペナルティは、読込み要求に対するI/O操作の比率です。 2 書込み時のペナルティは、書込み要求に対するI/O操作の比率です。 |
RAIDレベル0は、高パフォーマンスの、フォルト・トレラントでないディスクのストライプ化を可能にします。複数の物理ハード・ディスクが、ディスク・コントローラまたはオペレーティング・システムにより1つの論理ドライブ(たとえば、Windows 2000 Serverのストライプ・ボリューム)に集約されます。論理ボリュームに対するデータ操作は、配列化された物理ドライブと同じ数のチャンクに分割され、すべてのディスクが同時に使用されます。同一のハード・ディスクを使用した際に、1つのハード・ディスクのスループット率がDISKRATE
操作数/秒の場合、RAID-0の論理ボリュームのスループット率は、次のようになります。
(DISKRATE * [number of physical drives in array]) operations/second
RAID-0の短所は、フォルト・トレランスがないことです。論理ボリューム内のディスクの1つに障害が発生すると、論理ボリューム全体が影響され、バックアップからリストアする必要があります。
RAIDレベル1は、フォルト・トレラントなディスクのミラー化を使用可能にしますが、パフォーマンスが低下する可能性があります。基本的に、ミラー化されたディスクに対する書込みは、この目的専用の別ドライブ(ミラー・ドライブ)にすべて複製されます。ミラー化されたディスクに障害が発生すると、ミラー・ドライブがリアルタイムでオンラインになります。障害の発生したドライブが置き換えられた後、ミラー構成を再設定できます。
RAIDレベル1の読込み時のペナルティは、名目上は1:1ですが、コントローラによっては、分割読込みにより有利になることがあります。たとえば、最も速くアクセスできるミラーをコントローラが認識している場合は、そのディスクにI/O操作を誘導することにより、シーク時間を短縮できます。
RAIDレベル0+1は、ストライプ化されたハード・ディスク配列のミラー化を可能にします。これはRAID-0とRAID-1の混合使用で、高性能のフォルト・トレランスを提供します。
RAIDレベル5は、パリティを使用したディスクのストライプ化とも呼ばれ、高価なミラー化が不要になります。RAID-5では、RAID-0と同じように、ストライプ化された1つの論理ボリュームとして複数のハード・ディスクが集約されますが、各ドライブにはパリティ情報が含まれていて、ドライブの1つに障害が発生してもフォルト・トレランスが機能します。障害の発生したドライブが1つあっても、RAID-5システムではデータへのアクセスを続けられます。ただし、パリティ情報からその場でバイトが再構築されるため、アクセス時間はかなり長くなります。通常、RAID-5ソリューションでは、障害のあるドライブを新しいドライブとホットスワップすることができます。ホットスワップにより、パリティ情報から障害のあるドライブのデータが新しいドライブに再構築されます。
4:1という書込み時のペナルティは、パリティ計算中の2回の読込みと2回の書込みから生じます。
Windows Serverに十分な数の物理ディスクがある場合は、(オペレーティング・システム用のスタンドアロン・ハード・ディスクまたはストライプ化ボリュームの他に)少なくとも2つのストライプ化ボリュームを作成します。ストライプ化ボリュームの1つは順次データ・アクセスに、もう1つはランダム・データ・アクセスに使用できます。
たとえば、Oracle DatabaseのREDOログおよびアーカイブREDOログは、順次書き込まれます。ヘッドの移動が減るため、ハード・ディスクのパフォーマンスは、順次データの読込みまたは書込みのときに一番よくなります。
ただし、Oracle Databaseのデータファイルは通常はランダムな順序でアクセスされます。ハード・ディスクでのランダム・アクセスは、ヘッドの移動がかなり多くなり、データ・アクセス速度は低下します。
REDOログ・ファイルが(物理デバイス・レベルで)データファイルと分離されていないかぎり、UNDOファイルのI/O競合が発生し、両方のファイルのアクセス時間が増加する可能性があります。
Windows Serverのメモリー・マネージャはあまり使用されないページをディスクに移動してホット・ページ用にさらに多くの物理メモリーを解放しようとするため、Oracle DatabaseがWindows Server上で実行される唯一のネットワーク・アプリケーションである場合でも、仮想メモリー・ページングが発生する可能性はあります。
Windows Serverの仮想メモリー・ページング・ファイルの多重化は、システム全体のパフォーマンスを上げる優れた方法です。ページング・ファイルを最低2つの異なる物理ボリューム(または、基になる物理ボリュームが重複しない場合は、論理ボリューム)に分割すると、仮想メモリーのスワップ操作のパフォーマンスが著しく向上します。
これは、仮想メモリー・ページングの高速化の手法としては優れていますが、ページング・アクティビティが多すぎる場合はそれでもパフォーマンスに影響があるため、サーバーにRAMを追加する必要があります。
ページング・ファイルの合計サイズは、コンピュータ上の物理RAMの容量と少なくとも同じサイズにすることをお薦めします。合計サイズが物理RAMのサイズの2〜4倍という構成も珍しくはありません。ページングはできるだけ最小化してください。ただし、オペレーティング・システムのページング領域が不足したり少なくなったりするような状況は、何があっても避ける必要があります。適切にサイズ設定されたページング・ファイルが複数の物理ディスクにまたがり適正に分散されている場合は、I/Oの分散が最も効率的になります。これは、オペレーティング・システムがページング・ファイルにわたって公平に分散してページングするからです。
前述の項にある手順を行った後は、不要なフォアグラウンド・アプリケーションを閉じることを忘れないでください。最初に、Windows Serverのコンソール・オペレータの「Startup」フォルダから、すべてのアプリケーションを削除します。次に、長時間実行されるスクリプトをコマンド・プロンプトから実行する場合は、Windows Serverが操作に集中でき、大量のウィンドウ再描画メッセージを処理する必要がないように、ウィンドウを最小化しておきます。さらに、スクリーン・セーバーを無効にします。スクリーン・セーバーは、すぐにCPUを飽和状態にすることがあります。スクリーン・セーバーを実行する必要がある場合は、処理時間の最も短い「模様なし」を選択します。
|
Copyright © 1996, 2008 Oracle Corporation. All Rights Reserved. |
|