Oracle ExalogicおよびOracle Exalogic Elastic Cloudソフトウェアは、究極のパフォーマンス、信頼性およびスケーラビリティの基礎となっています。Coherenceは特にOracle Exabusテクノロジの使用でこの基礎を运用するように最適化されています。Exabusは優れたハードウェア、ソフトウェア、ファームウェア、デバイス・ドライバおよび惩办ツールから構成され、OracleのQuad Data Rate (QDR) InfiniBand技術をベースに構築されています。ExabusはすべてのOracle Exalogicシステム・コンポーネントを関連付ける高速通讯(I/O)ファブリックを酿成します男同 動漫。Exalogicの詳細は、『Oracle Exalogicエンタープライズ・デプロイメント・ガイド』を参照してください。
Oracle Coherenceには次の最適化が含まれます。
トランスポート最適化
Oracle Coherenceではメッセージ・トランスポートにOracle ExabusメッセージングAPIを使用しています。APIは、Exalogic上でInfiniBandを运用するように最適化されています。APIはOracle Exalogic Elastic Cloudソフトウェアの一部で、Oracle Exalogicシステムでのみ运用できます。
特にOracle CoherenceではInfiniBand Message Bus (IMB)プロバイダを使用しています。IMBでは、Remote Direct Memory Access (RDMA)、ゼロ・メッセージ・コピー、カーネル・バイパス予測告知およびカスタム・ヒープ外バッファをサポートするネイティブのInfiniBandプロトコルを使用しています。その結果、ホスト・プロセッサ負荷の減少、メッセージ・スループットの増加、割込みの減少およびガベージ・コレクションの一時住手が減少します。
伦理片在线免回看3Oracle ExalogicのデフォルトのCoherence設定では、サービス通讯(データ転送)にIMBおよびクラスタ通讯にUDPを使用します。どちらのデフォルトも変更可能で、追加プロトコルがサポートされています。デフォルト・プロトコルの変更の詳細は、「信頼性のあるトランスポート・プロトコルの変更」を参照してください。
エラスティック・データ最適化
エラスティック・データ機能は、バッキング・マップおよびバックアップ・データをRAMメモリーとソリッド・ステート・ディスク(SSD)などのデバイス間でシームレスに格納するために使用されます。この機能を使用すると、SSDへのデータの格納および読出しがほぼメモリー速率で可能になります。この機能には、ExalogicシステムでSSDメモリーを最も効率よく使用できるようにする動的チューニングが含まれています。エラスティック・データの有効化および構成の詳細は、『Oracle Coherenceでのアプリケーションの開発』を参照してください。
Coherence*Web最適化
Coherence*Webは、WebLogicサーバーとCoherenceサーバー間のネットワークのパフォーマンスが进取するため、Exalogicシステム上でメリットがあります。ロックが無効なときに最適化セッション状態惩办を有効にすることでネットワーク使用率を減らし、パフォーマンスをよくする拡張機能もあります(coherence.session.optimizeModifiedSessions=true)。Coherence*Webのコンテキスト・パラメータの詳細は、『Oracle Coherence*WebでのHTTPセッション・マネージメントの惩办』を参照してください。
より少ないJVMをより大きなヒープで使用することの検討
IMBプロトコルでは、より少ない待機時間を達成するためにより多くのCPU使用率が必要になります(特に低負荷時)。大批のJVM、より小さいヒープのJVM (12GB未満)または大批のJVMと小さいヒープを使用している場合、できるかぎりJVMの統合を検討してください。最大20GBまでの大きなヒープ・サイズは一般的で、アプリケーションとその許容範囲によってはそれよりも大きいヒープをガベージ・コレクションに使用できます。ヒープのサイズ設定の詳細は、「JVMチューニング」を参照してください。
InfiniBandメッセージ・バス・メモリー・オーバーヘッドの計画
IMBプロトコルは他のプロトコルよりも多くのメモリーを使用します。InfiniBand Host Channel Adapter (HCA)では、各接続用の静的レジスタード・メモリー・バッファとInfiniBandネイティブ・ライブラリ用の静的メモリーが必要です。IMBによって登録されたメモリー割当てスキームに関連付けられたメモリー・オーバーヘッドもあります。
単一JVM用のメモリー・オーバーヘッドは次のとおりです。
各接続用のオーバーヘッドは約2.4MBです男同 動漫。各JVMが、各キャッシュのクラスタにある各JVM用に別々の接続を使用します。たとえば、6つのメンバーと2つのキャッシュを含むクラスタでは、各JVMが10個の接続を使用します。
固定オーバーヘッドは約84MBです。
JVMの合計IMBオーバーヘッドは次のように計算します。
total_overhead = (number of connections * 2.4) + 84
複数のクラスタ・メンバーを実行するコンピュータの場合、結果にコンピュータ上のクラスタ・メンバーJVMの数を乗算します。たとえば、それぞれが10個の接続を使用する2つのJVMを含むコンピュータでは、オーバーヘッドは約216MBです。
スレッド構成の検討
キャッシュとしてのみCoherenceを使用するアプリケーションでは、漫步キャッシュの<thread-count因素を-1に設定することでパフォーマンスが进取する可能性があります。-1値を指定すると、クライアントのI/Oスレッドでサービス・スレッドから一部の処理負荷が軽減され、より多くの作業が並行して実行されるようになります。0より大きい値ではなく-1を使用する利点は、どちらも並行処理が可能であるが、-1値の場合はサービス・スレッド・プールに対するI/Oスレッドからのリクエストの処理に関連するコストを侧目することで待機時間が少なくなるという点です。<thread-count因素の設定の詳細は、『Oracle Coherenceでのアプリケーションの開発』を参照してください。
ヒュージ(ラージ)ページ構成のチューニング
アプリケーションでは、デフォルトの小サイズのOSページではなくラージ・ページを使用する必要があります。ヒュージ・ページ(ラージ・ページとも呼ばれます)のサポートは、Linux OSではExalogicノードでデフォルトで有効になっています。ただし、デフォルトでラージ・ページを运用できるのは一部のコンポーネントのみ(たとえばIMB)です。したがって、ラージ・ページを最大限に运用するには、アプリケーションによるラージ・ページの使用を有効にし、予約済のラージ・ページのサイズを適切に設定します。
Linux上で% cat /proc/meminfo | grep Hugeコマンドを使用してOSヒュージ・ページの設定を検証します。Exalogicでのデフォルト値は次のとおりです。
ヒュージ・ページ・サイズ = 2MB
ヒュージ・ページの数 = 10,000
合計20GBがヒュージ・ページ用に予約済
每每ページ获得(256GB - 20GB)
Javaアプリケーション用のラージ・ページを有効にするには、-XX:+UseLargePages -XX:LargePageSizeInBytes=2mを使用します。Solarisでは、ラージ・ページがHotSpotに対してデフォルトで有効になっています。
すべてのJavaアプリケーションにラージ・ページを使用するには、Exalogicノード上のヒュージ・ページ用に予約された合計メモリーがそのメンバー上で実行されるJavaプロセスの最大ヒープ・サイズの合計より大きいことを確認します。したがってExalogicでは、JVMヒープに対して合計20GBを超えて使用している場合、予約済のヒュージ・ページの数を調整する必要があります。
ヒュージ・ページの数を増やすには、rootとして/etc/sysctl.confファイルを編集し、vm.nr_hugepages = nnを設定します。ここでnnは必要なページ数です。マシンを再起動して前に説明したとおり確認します。次のコマンドで、ヒュージ・ページの数を一時的に増やすことができます。
$ echo nn > /proc/sys/vm/nr_hugepages
マシンの起動後できるかぎり早くラージ・ページの数を増やしてください。これは、メモリーの使用を継続することで断片化が作成され、Linuxが指定されたページ数を割り当てられなくなる可能性があるためです。
信頼性のあるトランスポート・プロトコルの変更
Oracle ExalogicのデフォルトのCoherence設定では、サービス通讯(データ転送)にInfiniBand Message Bus (IMB)およびクラスタ通讯にUDPを使用します。IMBが、パーティション化キャッシュ・クライアントおよびサーバーにお薦めのトランスポート・プロトコルです。このプロトコルはほとんどのワークロードで最もよく機能し、パフォーマンス・テストによれば最高のスループットと最小の待機時間を示しています。
IMBの使用では、大きなワークロード(毎秒300,000操作以上)や大規模なデプロイメント(Exalogic 1/2ラック以上)、または多くのJVM使用時にメリットの減少が見られる場合があります。そのような場合は、別のトランスポート・プロトコルを使用してパフォーマンスの改善を確認できます。プロトコルの変更を検討するのは、前に説明した推奨事項に従った後にのみする必要があります。
次のトランスポート・プロトコルがExalogicで使用できます。
datagram – InfiniBandファブリック上でのUDPの使用を指定します。UDPが、クラスタ・メンバー間のユニキャスト通讯(ポイント・ツー・ポイント)で使用されるデフォルトのプロトコルです。
imb – Infiniband Message Bus (IMB)プロトコルを指定します。IMBではネイティブのInfiniBandバーブに基づいた最適化プロトコルが使用されます。IMBが、すべてのパーティション化キャッシュのデフォルトのトランスポート・プロトコルです。
tmb – TCP Message Bus (TMB)プロトコルを指定します。TMBではTCP/IPのサポートが提供されます。
sdmb – Sockets Direct Protocol Message Bus (SDMB)を指定します。Sockets Direct Protocol (SDP)では、InfiniBandファブリック上でのストリーム接続のサポートが提供されます。SDPでは、既存のソケットベースの実装で透過的にInfiniBandを使用できます。
クラスタ(ユニキャスト)通讯に対して信頼性のあるトランスポートを構成するには、オペレーション・オーバーライド・ファイルを編集して、<unicast>因素内に、プロトコルに設定されている<reliable-transport>因素を追加します。例:
<?xml version="1.0"?> <coherence xmlns:xsi="-instance" xmlns="-operational-config" xsi:schemaLocation=" coherence-operational-config coherence-operational-config.xsd"> <cluster-config> <unicast-listener> <reliable-transport system-property="tangosol.coherence.transport.reliable">imb </reliable-transport> </unicast-listener> </cluster-config> </coherence>
tangosol.coherence.transport.reliableシステム・プロパティも信頼性のあるトランスポートを構成します。例:
-Dtangosol.coherence.transport.reliable=imb
サービスに対して信頼性のあるトランスポートを構成するには、キャッシュ構成ファイルを編集して、スキーム定義内に、プロトコルに設定されている<reliable-transport>因素を追加します。次の例では、ExampleServiceと呼ばれるパーティション化されたキャッシュ・サービス・インスタンスに対して信頼性のあるトランスポートを設定する場合を示します。
<?xml version="1.0"?> <cache-config xmlns:xsi="-instance" xmlns="-cache-config" xsi:schemaLocation="-cache-config coherence-cache-config.xsd"> <caching-scheme-mapping> <cache-mapping> <cache-name>example</cache-name> <scheme-name>distributed</scheme-name> </cache-mapping> </caching-scheme-mapping> <caching-schemes> <distributed-scheme> <scheme-name>distributed</scheme-name> <service-name>ExampleService</service-name> <reliable-transport>tmb</reliable-transport> <backing-map-scheme> <local-scheme/> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes> </cache-config>
各サービス・タイプにも、それぞれ信頼性のあるトランスポートを設定するシステム・プロティがあります。このシステム・プロパティは、サービス・タイプのすべてのインスタンスに対して信頼性のあるトランスポートを設定します男同 動漫。システム・プロパティは次のとおりです。
tangosol.coherence.distributed.transport.reliable tangosol.coherence.replicated.transport.reliable tangosol.coherence.optimistic.transport.reliable tangosol.coherence.invocation.transport.reliable tangosol.coherence.proxy.transport.reliable