このドキュメントでは、ExalogicのためのすべてのOracle Tuxedo最適化を紹介します。このドキュメントを使用すれば、ExalogicでTuxedoを簡単にインストール、構成および実行できるようになります。
Oracle Exalogicは、演算処理、ネットワーキングおよび記憶域ハードウェアを仮想化、オペレーティング・システムおよび管理ソフトウェアと統合するエンジニアド・システムです。広範なビジネス・アプリケーション・ワークロードに対応するために卓越したパフォーマンス、信頼性、可用性、スケーラビリティおよび投資保護を提供します。
11.1.1.3.0以降、Oracle TuxedoではOracle Exalogicプラットフォーム向けの多数の最適化を提供しています。表1に、Exalogicがサポートする機能を示します。
注: | Oracle Tuxedo 12cR2 (12.1.3)以降、Direct Cross Node Communication Leveraging RDMAおよびDirect Cross Domain Communication Leveraging RDMAを除き、すべての最適化がExalogic Linux 64bitおよびSPARC 64bitの両方をサポートしています。 |
注: | Oracle Linux 32ビット・プラットフォーム上のOracle Tuxedo 12.1.3.0.0 RP020以降、Direct Cross Node Communication Leveraging RDMA、Direct Cross Domain Communication Leveraging RDMA、Oracle Tuxedo SDP SupportおよびShared Applications Stagingを除き、すべての最適化がExalogic Linux 32ビットをサポートしています。 |
注: | これらの機能の詳細は、「ExalogicでのTuxedo最適化」を参照してください。 |
これはTuxedo 11.1.1.3.0の新機能であり、MPモード下でTuxedoアプリケーションのパフォーマンスを著しく向上できます。
以前のリリースでは、ローカル・クライアントとリモート・サーバー間のメッセージの転送にはブリッジを介す必要がありました。たとえば、メッセージは最初にIPCキューを介してローカル・ブリッジに送信され、次にローカル・ブリッジはネットワークを介してメッセージをリモート・ブリッジに送信し、リモート・ブリッジはメッセージをサーバーのIPCキューに送信し、最後にサーバーはIPCキューからメッセージを取得します。そのため、同時実行性が高いとブリッジがボトルネックとなってしまいます。InfinibandのRDMA機能を利用することにより、Tuxedo 11.1.1.3.0では、「Direct Cross Node Communication Leveraging RDMA」の新機能が導入され、ローカル・クライアントがリモート・サーバーに直接メッセージを転送する機能を提供しています。
構成方法の詳細は、「Oracle Tuxedoの構成」を参照してください。
以前のリリースでは、ローカル・ドメインとリモート・ドメイン間のメッセージの転送にはドメイン・ゲートウェイ(GWTDOMAIN)を介す必要がありました。たとえば、メッセージは最初にIPCキューを介してローカルGWTDOMAINに送信され、次にローカルGWTDOMAINはネットワークを介してメッセージをリモートGWTDOMAINに送信し、リモートGWTDOMAINはメッセージをサーバーのIPCキューに送信し、最後にサーバーはIPCキューからメッセージを取得します。そのため、同時実行性が高いとドメイン・ゲートウェイがボトルネックとなってしまいます。このリリースでは、TUXCONFIGファイルでDirect Cross Domain Communication Leveraging RDMAを有効化すると、ローカル・クライアントとリモート・サーバーはドメイン・ゲートウェイをスキップし、メッセージを直接転送します。
構成方法の詳細は、「Oracle Tuxedoの構成」を参照してください。
この機能を使用すると、CPUサイクルを最大限に活用できるようにSPINCOUNTの値を動的に調整できます。
Tuxedoの掲示板(BB)は、すべてのアプリケーション構成情報および動的処理情報が実行時に格納されるメモリー・セグメントです。Tuxedoシステムの一部の操作(サービス名のルックアップやトランザクションなど)では、掲示板をロックし、掲示板へのアクセスを1つのプロセスのみに制限する場合があります。プロセスまたはスレッドにより、掲示板が別のプロセスまたはスレッドでロックされていることが検出されると、再試行するか、ロック・スピンをSPINCOUNT回数行ってから(スピンを介したユーザー・レベル・メソッド)、この操作をやめて、待機キューでスリープ状態に入ります(システム・セマフォを介したシステム・レベル・メソッド)。スリープ状態はリソースを消費するため、一定のロック・スピンを行ってからスリープ状態になるように設定しておく方が効率的です。
SPINCOUNTパラメータの値は、アプリケーションおよびシステムによって異なるため、管理者は異なるSPINCOUNT値の下でアプリケーション・スループットを確認して、SPINCOUTが適切な値になるように手動で調整する必要があります。
自動チューニング・ロック・メカニズムにより、ジョブのチューニングを自動的に行います。SPINCOUNT値が適切な値になるように設計されているため、掲示板をロックするほとんどのリクエストが、待機キューでスリープ状態になるのではなく、ロック・スピンを行うことによって完了します。
Oracle Tuxedo 12cリリース2 (12.1.3)では、自動チューニング・ロック・メカニズムのアルゴリズムが改良され、チューニングが以前よりも正確になりました。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
InfiniBandベースのネットワーク・ハードウェアを使用することの利点の1つは、ソケット・ダイレクト・プロトコル(SDP)を利用する機能です。このプロトコルを使用して、アプリケーションは通常のソケット・インタフェースを介して互いに通信できますが、順序付け、断片化、タイムアウト、再試行などのTCP/IPに関連したネットワーク処理を回避できます。これはInfiniBandハードウェアがこのような内容を扱うからです。また、SDPは、InfiniBandハードウェアが呼出し側のアドレス領域からバッファを直接転送することが可能な、ゼロ・コピー転送もサポートします。
SDPを利用することにより、Tuxedoアプリケーションはネットワーク処理で消費されるCPU量を減らすとともに、ネットワーク処理のスループット全体を向上させることができます。SDPは、ブリッジ間通信を含むすべてのTuxedoネットワーク接続で、他のTuxedoドメインと通信するためのドメイン・ゲートウェイGWTDOMAINで、ワークステーションやJoltクライアント用に、およびWebLogic Tuxedo Connectorを介したWebLogic Serverとの通信に使用できます。
構成方法の詳細は、「Oracle Tuxedoの構成」を参照してください。
Oracle Tuxedo 12cリリース2 (12.1.3)では、同一のTuxedoノードにおけるプロセス間通信でIPCメッセージ・キューのかわりに共有メモリー・キューを用いることで、ExalogicでのTuxedoアプリケーションのパフォーマンスが大幅に改善されました。共有メモリー・キューを使用すると、送信者と受信者のプロセスは、事前に割り当てられたメッセージを共有メモリー内で交換できます。これにより、メッセージが目標とするターゲットに届くまで何度もメッセージをコピーする必要がなくなり、結果的にスループットが大幅に向上するとともに待機時間も短縮されます。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
この機能では、XAのリソース・マネージャの読取り専用最適化を利用します。2フェーズ・コミット・シナリオでは、準備リクエストが予約グループを除く参加グループに同期されます。これらのグループのすべてのトランザクション・ブランチが読取り専用の場合、Tuxedoは予約グループで1フェーズ・コミットを直接実行します。これは、(予約グループへの)1つの準備リクエストが省略され、TLOGの記述が無視されることを意味します。
TuxedoドメインおよびWTCを介したWLS間のグローバル・トランザクションを含む、ドメイン内またはドメイン間のいずれのトランザクションもサポートされます(WLS 12.1.1の場合、WLSのパッチ、または以降のリリースについて、Oracleサポートにお問い合せください)。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
Oracle Tuxedo 12cでは、Exalogicシステムでストレージ・アプライアンスの多数のコンピュート・ノード全体で共有アプリケーション・ディレクトリ(APPDIR)を使用できるため、アプリケーション・デプロイメントの管理がより簡単に行えるようになります。
構成方法の詳細は、「Oracle Tuxedoの構成」を参照してください。
Oracle Tuxedo 11.1.1.3.0以前は、異なるドメインでは異なるグローバル・トランザクション識別子(GTRID)が使用されるため、トランザクションのブランチが同じデータベース上で実行される場合でも、ドメインをまたがるトランザクションは疎結合されます。Oracle Tuxedo 12.1.1以降、共通GTRIDがデフォルトで導入され、ドメインをまたがるグローバル・トランザクション内のブランチで共通GTRIDが使用されます。ブランチは同一データベースで実行されている場合には密結合されます(データベースが許可している場合)。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
XAトランザクション・アフィニティは、可能な場合に、1つのグローバル・トランザクション内のすべてのOracleデータベース・リクエストを同一のOracle RACインスタンスにルーティングする機能を提供します。そのリクエストがOracle Tuxedoアプリケーション・サーバーからのものか、Oracle WebLogic Serverからのものかは関係ありません。この機能により、データベース要求を新しいOracle RACインスタンスにリダイレクトするコストを削減できるため、アプリケーション・パフォーマンス全体が向上します。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
以前のリリースでは、グローバル・トランザクションの場合、参加しているグループごとに独自のトランザクション・ブランチを持ち、一意のトランザクション・ブランチ識別子(XID)が各ブランチを識別していました。グローバル・トランザクションに複数のグループが含まれる場合、Tuxedoでは各ブランチで2フェーズ・コミットを採用し、最初に参加しているグループをコーディネータとみなします。
このリリースの共通XID (トランザクション・ブランチ識別子)機能を使用して、Tuxedoは同一グローバル・トランザクション内の他のすべてのグループとコーディネータ・グループのXIDを共有します。以前のリリースでは、複数グループが参加している場合は、各グループが自身のXIDを持つために2フェーズ・コミットを必要としましたが、これとは対照的です。
共通XIDは、コーディネータ・ブランチを直接使用するため、同一のサービスを介して同一のOracle RACインスタンスに接続するグループに対するXAコミット操作が不要です。
グローバル・トランザクションのすべてのグループがコーディネータ・ブランチを直接使用する場合、(2フェーズ・コミット・プロトコルではなく)1フェーズ・コミット・プロトコルが使用されるため、TLOG
の書込みは行われません。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
以前のリリースでは、同一の参加グループのサーバーはグローバル・トランザクション内の同一トランザクション・ブランチを使用しています。これらのサーバーが同一RACの異なるインスタンスに接続する場合は、トランザクション・ブランチは失敗し、XAエラーXAER_AFFINITY
が報告されます。これは、1つのブランチでは複数のインスタンスを通過できないことを示しています。このような理由から、Tuxedoグループで使用できるのは、シングルトンRACサービスのみです。DTPサービス(DTPオプションであるsrvctl
内の-x
が指定されている場合)または1つのインスタンスのみで提供されるサービスを、シングルトンRACサービスに指定できます。
このリリースでは、この機能により、サーバー・グループ内の複数サーバーが同一のグローバル・トランザクションに参加している場合の、シングルトンRACサービスの使用が不要になります。同一サーバー・グループおよび同一グローバル・トランザクションのサーバーが異なるRACインスタンスに接続している場合は、別のトランザクション・ブランチが使用されます。これにより、このようなアプリケーションは、使用可能なRACインスタンス間でロード・バランシングを実行できるようになります。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
注: | 1つのグループに16を超えるインスタンスが含まれる場合、トランザクションは依然として失敗します。 |
高速アプリケーション通知(FAN)は、データベース・クライアントがデータベースの状態の変化を知ることができる、Oracle Databaseによって提供される機能です。これらの通知によって、アプリケーションはRACノードの計画停止やデータベースの負荷の不均衡などのイベントに対してプロアクティブに対応できます。Tuxedoは、新しいシステム・サーバーTMFAN
によってFAN通知のサポートを提供します。このシステム・サーバーでOracle RACインスタンスをモニターし、データベース・インスタンスの起動または停止の場合にTuxedoアプリケーション・サーバーに通知して新規データベース接続を確立できます。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
FAN通知に基づいてTuxedo TMFAN
サーバーは、各RACインスタンスの負荷情報を含むロード・バランシング・アドバイザリを受信できます。指摘された負荷の変化がTMFAN
コマンド行スイッチで指定されたしきい値を超えた場合、Tuxedoリクエストはデータベースの負荷の低いTuxedoアプリケーション・サーバーに転送されます。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
Oracle Tuxedoでは、グローバル・トランザクション表(GTT)と呼ばれるOracle Tuxedo掲示板にアクティブなグローバル・トランザクションとそのパーティシパントの表を保持することでグローバル・トランザクションを管理します。この表は複数の同時プロセスによってアクセスされるため、セマフォを使用して保護する必要があります。通常のOracle Tuxedoの場合、掲示板のロックを使用してこの表へのアクセスはシリアライズされます。ただし、トランザクションの負荷が高い場合、このロックの競合が激しくなり、人為的なパフォーマンス・ボトルネックとなる場合があります。
XPPは、GTTへのアクセスのシリアライズを掲示板のロックから他の複数のロック(GTTへのアクセス用に1つとGTTの各エントリ用に1つ)に移行します。これによって、GTTにアクセスする場合の同時実効性が大幅に向上し、このボトルネックを解消できます。
詳細は、Oracle Tuxedo Advanced Performance Packの使用を参照してください。
この項では、ExalogicにおけるOracle Tuxedoの基本機能の構成について説明します。詳細は、Oracle Tuxedo 12cリリース2 (12.1.3)リリース・ノートおよび『Oracle Tuxedoアプリケーションの設定』を参照してください。
「Direct Cross Node Communication Leveraging RDMA」の構成には、次のものが含まれます。
Direct Cross Node Communication Leveraging RDMAがサポートされるのは、MPモードのときのみです。この機能を有効にするには、OPTIONSのEECSを指定する必要があります。これを指定しない場合は、ブリッジを介してメッセージが送信されます。
*RESOURCEセクションのDirect Cross Node Communication Leveraging RDMAには1つの属性があります。
Msgq_daemon
がバインドされるIPアドレス。構成する必要があり、IPoIBアドレスである必要があります(イーサネット・ベースのIPアドレスではありません)。1つの論理マシンには1つのMsgq_daemon
を構成する必要があります。
EXALOGIC_MSGQ_CACHE_SIZE
の機能は、環境変数EXALOGIC_MSGQ_CACHE_SIZE
の機能と同じです。ただし、環境変数は優先度が高くなります。値は32から2048までにする必要があります。EXALOGIC_MSGQ_CACHE_SIZE
は、RDMAが有効な場合にのみ*MACHINES
で指定できます。デフォルト値は、UBBCONFIG
で定義されていない場合は32です。 一部のシナリオでは、この値を増やすとTuxedoパフォーマンスを改善できます。詳細は、「EXALOGIC_MSGQ_CACHE_SIZEの設定」を参照してください。
*RESOURCES
セクションでRDMAオプションを有効化後。デフォルトでは、RDMA機能をサポートするために、MPモードのすべてのマシンがExalogicマシン(同一タイプ)である必要があるため、*MACHINES
セクションのTYPE
属性を設定できません。
TM_MIB
を介しても構成を取得/変更できます。詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。
リスト1は、Direct Cross Node Communication Leveraging RDMAが有効な状態のUBBCONFIG
サンプル・ファイルです。
*RESOURCES
IPCKEY 87654
MASTER site1,site2
MAXACCESSERS 40
MAXSERVERS 40
MAXSERVICES 40
MODEL MP
OPTIONS LAN,EECS
LDBAL Y
*MACHINES
slce04cn01 LMID=site1
APPDIR="/home/oracle/tuxedo12.1.1.0/samples/atmi/simpapp"
TUXCONFIG="/home/oracle/tuxedo12.1.1.0/samples/atmi/simpapp/tuxconfig"
TUXDIR="/home/oracle/tuxedo12.1.1.0"
UID=601
GID=601
RDMADAEMONIP=192.168.10.1
RDMADAEMONPORT=9800
RDMAQSIZE=65536
RDMAQENTRIES=64
slce04cn02 LMID=site2
APPDIR="/home/oracle/tuxedo12.1.1.0/samples/atmi/simpapp/slave"
TUXCONFIG="/home/oracle/tuxedo12.1.1.0/samples/atmi/simpapp/slave/tuxconfig"
TUXDIR="/home/oracle/tuxedo12.1.1.0"
UID=601
GID=601
RDMADAEMONIP=192.168.10.2
RDMADAEMONPORT=9800
RDMAQSIZE=65536
RDMAQENTRIES=64
*GROUPS
GROUP1
LMID=site1 GRPNO=1 OPENINFO=NONE
GROUP2
LMID=site2 GRPNO=2 OPENINFO=NONE
*NETWORK
site1 NADDR="//slce04cn01:5432"
NLSADDR="//slce04cn01:5442"
site1 NADDR="//slce04cn02:5432"
NLSADDR="//slce04cn02:5442"
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP2 SRVID=3
*SERVICES
TOUPPER
Msgq_Daemon
で使用される共有メモリーは、スワップ領域にページングされないように物理メモリーにロックされるため、/etc/securitylimits.conf
のmemlockに適切な値を設定する必要があります。
[Msgq_daemon共有メモリー・サイズ] * 2 + MAXACCESSERS * 14000KB
Msgq_daemon
共有メモリー・サイズ: Msgq_daemon
によって割り当てられた共有メモリーのサイズ。詳細は、「Msgq_daemonの共有メモリー・サイズの計算」を参照してください。
MAXACCESSERS
: UBBCONFIG
ファイル内の属性。
Msgq_daemon
共有メモリー・サイズ: 200*1024KB
200*1024*2 + 100 * 14000 = 1809600
/etc/securitylimits.confで次のように指定します。
Oracle Tuxedoを起動する前に、Direct Cross Node Communication Leveraging RDMAが有効な状態ですべてのExalogicノードに共有ディレクトリがあるか確認します。また、アクセス権限が適切に設定されているか確認します。
デフォルト名は/u01/common/patches/tuxtmpfile
です。また、EXALOGIC_SHARED_PATH
環境変数を使用すると、独自のディレクトリを設定できます。これは、Oracle Tuxedoファイル転送に使用されます。EMSQがフルか、メッセージ・サイズがキュー・サイズを超過する場合、Oracle Tuxedoはこのメッセージを/u01/common/patches/tuxtmpfile
ディレクトリ直下の一時ファイルに保存し、リモート・プロセス・キューに通知を直接送信します。リモート・プロセスは通知を受信するかぎり、ファイルを取得できます。
Direct Cross Domain Communication Leveraging RDMAを使用する場合は、UBBCONFIGファイルの構成が必要になります。
注: | Direct Cross Domain Communication Leveraging RDMAの場合、最初にDirect Cross Note Communication Leveraging RDMAを有効にする必要があります。 |
この機能を有効にするには、UBBCONFIG
のRESOURCES
セクションで、BYPASSDOM_ID
、BYPASSDOM_SEQ_NUM
およびBYPASSDOM_SHARED_DIR
パラメータを指定するとともに、OPTIONS
パラメータのEECS
フラグも指定する必要があります。
1つのドメイン・グループ内のドメインの最大数を指定する、オプション属性MAXDOMAINS
があります。デフォルトは32です。
TM_MIB
を介しても構成を取得または変更できます。詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。
リスト2は、Direct Cross Domain Communication Leveraging RDMAを有効化するUBBCONFIG
サンプル・ファイルです。
*RESOURCES
IPCKEY 87654
MASTER site1
MAXACCESSERS 40
MAXSERVERS 40
MAXSERVICES 40
MODEL SHM
OPTIONS EECS
LDBAL Y
BYPASSDOM_ID bddomgrp1
BYPASSDOM_SEQ_NUM 0
BYPASSDOM_SHARED_DIR "/nfs/bypassdom/bddomgrp1/shareddir"
MAXDOMAINS 16
*MACHINES
slce04cn01 LMID=site1
APPDIR="/home/oracle/tuxedo12.1.3.0/samples/atmi/simpapp"
TUXCONFIG="/home/oracle/tuxedo12.1.3.0/samples/atmi/simpapp/tuxconfig"
TUXDIR="/home/oracle/tuxedo12.1.3.0"
UID=601
GID=601
RDMADAEMONIP="192.168.10.1"
RDMADAEMONPORT=9800
RDMAQSIZE=65536
RDMAQENTRIES=64
*GROUPS
GROUP1 LMID=site1 GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=3
*SERVICES
TOUPPER
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用の自動チューニング・ロック・メカニズムに関する項を参照してください。
Oracle Tuxedo SDPサポートを有効にするには、*RESOURCES
セクションにあるOPTIONS
のEECS
を指定し、UBBCONFIG
ファイルまたはDMCONFIG
ファイルで関連する構成を設定します。
TM_MIB
を介しても構成を取得または変更できます。詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。
要件によれば、MPはIBクラスタ内で機能する必要があります。つまり、マスター・マシンとスレーブ・マシンが両方ともIBクラスタ内にあるため、SDPとIPoIBはIBクラスタ内で使用され、bootstrapフェーズでは、tmboot、tlisten、bsbridgeおよびbridgeが相互通信を行うためにソケットAPIを使用していることのみを考慮します。
ネットワーク・アドレスの接頭辞「sdp:」とネットワーク・アドレスはIPoIBアドレスである必要があります。
リスト3はUBBCONFIGファイルのSDPの例です。
*NETWORK
SITE1
NADDR="sdp://IB_IP: 9003"
NLSADDR="sdp://IB_IP: 3050
SITE2
NADDR="sdp://IB_IP: 9003"
NLSADDR="sdp://IB_IP: 3050"
To start tlisten:
tlisten ¨Cd /dev/tcp ¨Cl sdp://IB_IP: 3050
ネットワーク・アドレスとしてIPoIBアドレスを使用します。
リスト4に、UBBCONFIGファイルのIPoIB構成例を示します。
*NETWORK
SITE1
NADDR="//IB_IP: 9003"
NLSADDR="//IB_IP: 3050
SITE2
NADDR="//IB_IP: 9003"
NLSADDR="//IB_IP: 3050"
To start tlisten:
tlisten -d /dev/tcp -l //IB_IP: 3050
GWTDOMAINを実行しているノードに複数のIPアドレスを持つ複数のネットワーク・インタフェース(マルチホーム型)がある場合、DMCONFIGファイルでGWTDOMAINを構成する場合、ホスト名のかわりに明示的なIPアドレスを使用することをお薦めします。通常、すべてのExalogicノードには、IBインタフェースとイーサネット・インタフェースという少なくとも2種類のネットワーク・インタフェースがあります。GWTDOMAINを構成する方法を説明するに当たりわかりやすくするため、IBインタフェースはIPアドレスIB_IP
に対してバインドされ、イーサネット・インタフェースはIPアドレスETH_IP
を持つと仮定します。
機能として、GWTDOMAINはサーバーとクライアントの両方の役割を果たします。サーバーの役割としては、DMCONFIGファイルで構成済のIPアドレスとポート番号をリスニングし、他のGWTDOMAINからの接続リクエストを受け入れます。クライアントの役割としては、DMCONFIGファイルで構成されたポリシーによって他のGWTDOMAINへの接続リクエストを開始します。
ネットワーク・アドレスの接頭辞「sdp:」とネットワーク・アドレスは、リスト5で示すようにIPoIBアドレスである必要があります。
*DM_LOCAL
SCLCU03 GWGRP=DOMGRP
TYPE=TDOMAIN
*DM_TDOMAIN
SCLCU03 NWADDR="sdp://IB_IP: 27610"
ネットワーク・アドレスの接頭辞「sdp:」とネットワーク・アドレスは、リスト6で示すようにIPoIBアドレスである必要があります。
*DM_LOCAL
SCLCU03 GWGRP=DOMGRP
TYPE=TDOMAIN
*DM_REMOTE
SCLCU05 TYPE=TDOMAIN
DOMAINID="EXALOGIC_SCLCU05"
*DM_TDOMAIN
SCLCU05 NWADDR="sdp://IB_IP: 27610"
ネットワーク・アドレスとしてIPoIBアドレスを使用します。次はIPoIBのDMCONFIGファイルの構成例です。
*DM_LOCAL
SCLCU03 GWGRP=DOMGRP
TYPE=TDOMAIN
*DM_TDOMAIN
SCLCU03 NWADDR="//IB_IP: 27610"
ネットワーク・アドレスとしてIPoIBアドレスを使用します。次はIPoIBのDMCONFIGファイルの構成例です。
*DM_LOCAL
SCLCU03 GWGRP=DOMGRP
TYPE=TDOMAIN
*DM_REMOTE
SCLCU05 TYPE=TDOMAIN
DOMAINID="EXALOGIC_SCLCU05"
*DM_TDOMAIN
SCLCU05 NWADDR="//IB_IP: 27610"
ネットワーク・アドレスの接頭辞「sdp:」とネットワーク・アドレスは、リスト9で示すようにIPoIBアドレスである必要があります。
*SERVERS
DEFAULT: CLOPT="-A"
WSL SRVGRP=WSGRP SRVID=1001
CLOPT="-A -- -nsdp://IB_IP: 11101 -m1 -M10 -x1"
IpoIB DMをリスニングしているWSLで示すようにネットワーク・アドレスとしてIPoIBアドレスを使用します。
*SERVERS
DEFAULT: CLOPT="-A"
WSL SRVGRP=WSGRP SRVID=1001
CLOPT="-A -- -n //IB_IP: 11101 -m1 -M10 -x1"
Configure JSL listen on SDP
ネットワーク・アドレスの接頭辞「sdp:」とネットワーク・アドレスは、リスト11で示すようにIPoIBアドレスである必要があります。
*SERVERS
DEFAULT: CLOPT="-A"
JSL SRVGRP=WSGRP SRVID=1001
CLOPT="-A -- -nsdp: //IB_IP: 11101 -m1 -M10 -x1"
WTCとOracle Tuxedo間のSDP接続を有効化するには、次の手順を実行します。
注: | WTCアクセス・ポイントでSSLが有効化されると、SDPを構成した後、SSL構成が無視されます。 |
注: | SDPを介してOracle Tuxedoに接続できるのは、Weblogic Server 12c (12.1.1)以上のみです。詳細は、「SDPトランスポートのIPv4の有効化」、「WTCローカルTuxedo Domain構成のNWAddr属性」、および「WTCリモートTuxedo Domain構成のNWAddr属性」を参照してください。 |
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用の共有メモリー・プロセス間通信に関する項を参照してください。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用のRACの部分的1フェーズ読取り専用最適化に関する項を参照してください。
Oracle Tuxedoシステムは、X/Open XAインタフェースを使用して様々なリソース・マネージャと通信します。XA規格は、あらゆる主要データベース・ベンダー製品で幅広くサポートされています。
Oracle Databaseの起動には、SDP (Sockets Direct Protocol)を使用できます。Oracle Tuxedoアプリケーションには特別な要件はありません。
『Oracle Database Net Services管理者ガイド』のデータベース・サーバーへのInfinibandネットワーク通信用SDPプロトコル・サポートの構成に関する項に記載されているように、データベースがInfiniBandをサポートするように構成してください。
注: | 次のSDPパラメータは、大容量データ・ブロックをデータベースに送信する際、パフォーマンスに影響を与えます。 |
たとえば、サーバー・ノード上で「/etc/modprobe.conf
」の2つのパラメータを次のように設定できます。
ib_sdp sdp_zcopy_thresh=0 recv_poll=0
のオプション
EECSオプションとMPモードが両方とも設定され有効化されている場合のみ、Oracle TuxedoアプリケーションをMP環境(共有アプリケーション・ステージングという名前)のExalogicで共有ディレクトリにデプロイできます。Oracle Tuxedoアプリケーションを起動する前に、UBBCONFIGファイルで次のパラメータが正しく設定されているか確認します。
前述のほか、明確なロギング・システムを持つには各ノードで固有のTMIFRSVR repository_file
、標準出力/エラー・ファイル、AUDITLOGファイルおよびALOGPFXを使用することをお薦めします。共有アプリケーション・ステージング機能を最適に使用するには、すべてのアプリケーションに固有の名前を設定する必要があります。
リスト13は、UBBCONFIG
ファイルの共有APPDIRの例です。
...
*MACHINES
slce04cn01 LMID=site1
APPDIR="/home/oracle/tuxapp"
TUXCONFIG="/home/oracle/tuxapp/tuxconfig_cn01"
TUXDIR="/home/oracle/tuxedo11gR1"
TLOGDEVICE=/home/oracle/tuxapp/TLOG1
ULOGPFX="/ home/oracle/tuxapp /ULOG_cn01"
RDMADAEMONIP="192.168.10.1"
RDMADAEMONPORT=9800
RDMAQSIZE=1048576
RDMAQENTRIES=1024
slce04cn02 LMID=site2
APPDIR=" home/oracle/tuxapp"
TUXCONFIG=" home/oracle/tuxapp/tuxconfig_cn02"
TUXDIR="/home/oracle/tuxedo11gR1"
TLOGDEVICE=/home/oracle/tuxapp/TLOG2
ULOGPFX="/home/oracle/tuxapp /ULOG_cn02"
RDMADAEMONIP="192.168.10.2"
RDMADAEMONPORT=9800
RDMAQSIZE=1048576
RDMAQENTRIES=1024
UBBCONFIG
ファイルにSECURITY
が設定されている場合、EECS
が有効化されているMPドメインのみが、共通のAPPDIR
を共有できます。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用のドメインをまたがる密結合トランザクションに関する項を参照してください。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用のXAトランザクション・アフィニティに関する項を参照してください。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用の共通XIDに関する項を参照してください。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用の単一グループの複数ブランチ(SGMB)に関する項を参照してください。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用のデータベース・インスタンス間のフェイルオーバー/フェイルバックに関する項を参照してください。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用のRACインスタンス間のロード・バランシングに関する項を参照してください。
構成の詳細は、Oracle Tuxedo Advanced Performance Packの使用の同時グローバル・トランザクション表ロックに関する項を参照してください。
この機能は、クライアントがリモート・サーバーに直接アクセスする機能を提供し、BRIDGE
におけるボトルネックを解消します。TuxedoがMPモードで同時リモート・アクセス数が多いときに、この機能がUBBCONFIG
で有効になっている場合、スループットが著しく改善します。
注: | 次のシナリオは、この機能にはお薦めしません。 |
注: | クライアントはBRIDGE を介してリモート・サーバーに接続し、比較的短い期間、そのサーバー上で動作します。たとえば、tpinit() の次にいくつかのtpcall() 、次にtpterm() という順番です。RDMA接続の作成/オープン/クローズのオーバーヘッドは、Unix IPCキューにおけるオーバーヘッドよりずっと高いです。したがって、このシナリオでは、明白なパフォーマンスの改善はありません。 |
Oracle Tuxedoスレッドにはそれぞれ、EMSQ
ランタイム・キャッシュがあります。デフォルトのエントリ数は32です。この値は、Oracle Tuxedoアプリケーションが起動するか、それをUBBCONFIG
で設定する前に、環境変数EXALOGIC_MSGQ_CACHE_SIZE
を使用して32から2048の間で変更できます。一部のシナリオでは、数値を大きくすると、Oracle Tuxedoのパフォーマンスを向上できます。次に例を示します。
推奨値を取得するには、リスト14で示すようにtmloadcf -c ubb
を実行してください。
*MACHINES
ex03
LMID=site1
...
RDMADAEMONIP="192.168.10.1"
RDMADAEMONPORT=9800
RDMAQSIZE=100000
RDMAQENTRIES=100
MAXACCESSERS=100
...
ex03_1 LMID=site2
...
RDMADAEMONIP="192.168.10.2"
RDMADAEMONPORT=9800
RDMAQENTRIES=1000
MAXACCESSERS=200
...
ex04 LMID=site3
...
RDMADAEMONIP="192.168.10.3"
RDMADAEMONPORT=9800
RDMAQSIZE=100000
RDMAQENTRIES=100
MAXACCESSERS=200
MAXSERVERS=100
...
ex04_1 LMID=site4
...
RDMADAEMONIP="192.168.10.4"
RDMADAEMONPORT=9800
RDMAQSIZE=1000000
RDMAQENTRIES=1000
MAXACCESSERS=100
...
コマンドtmloadcf -c ubb
を実行し、リスト15で示すように出力を取得します。
Ipc sizing (minimum /T values only) ...
Fixed Minimums Per Node
SHMMIN: 1
SHMALL: 1
SEMMAP: SEMMNI
Variable Minimums Per Node
SEMUME, A SHMMAX
SEMMNU, * *
Node SEMMNS SEMMSL SEMMSL SEMMNI MSGMNI MSGMAP SHMSEG RCDMSZ
----- ----- ----- ---- ------- ----- ------ ------ ------
ex03 126 15 120 A + 2 26 52 1178K 220M
ex04 221 28 220 A + 1 26 52 1340K 340M
ex04_1 121 15 120 A + 1 26 52 1178K 1300M
ex03_1 221 28 220 A + 1 25 50 1340K 2500M
UBBで構成済の次の項目のいずれかの値を大きくすると、RCDMSZ
も連動して増えます。
tmloadcf
でRCDMSZ
を取得後、次のランタイム要素に従って実際のサイズを調整できます。
パフォーマンス上の理由から、キューが破棄された後に共有メモリー・リソースはその直後に解放されません。プロセスの起動/停止頻度を多くするほど、キューの作成/破棄の頻度を多くするほど、古いキューがリソースに占める割合が多くなります。次の式を使用して、できるだけ多く共有メモリーを割り当てる必要があります。
3 * EXALOGIC_MSGQ_CACHE_SIZE * MAXSERVERS * RDMAQSIZE
UBBCONFIG
ファイル内のマシン数は、RCDMSZ
の計算時に考慮されます。MIB
を使用して新しいマシンを追加する場合、サイズも連動して増やす必要があります。
一部の使用環境では、EXALOGIC_MSGQ_CACHE_SIZE
を使用してキュー・キャッシュ・エントリ数を増やすと、Msgq_daemon
が共有メモリーをさらに割り当てる必要があります。たとえば、Oracle Tuxedoプロセスの起動/停止またはtpinit/tptermの頻度が高い場合、Msgq_daemon
の初期共有メモリー・サイズを調整することを検討する必要があります。調整しないと、メッセージ転送が失敗する場合があります。
Oracle Tuxedoスレッドのそれぞれのデフォルト値は32、tmloadcf -c
は常に値として32を想定しています。デフォルト値を変更する場合は、次のメソッドを使用してMsgq_daemon
の共有メモリー・サイズを調整します。
注: | 構成方法の詳細は、「Oracle Tuxedoの構成」の「Direct Cross Node Communication Leveraging RDMA」を参照してください。 |
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用の自動チューニング・ロック・メカニズムに関する項を参照してください。
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用の共有メモリー・プロセス間通信に関する項を参照してください。
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用のRACの部分的1フェーズ読取り専用最適化に関する項を参照してください。
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用のXAトランザクション・アフィニティに関する項を参照してください。
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用の共通XIDに関する項を参照してください。
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用のデータベース・インスタンス間のフェイルオーバー/フェイルバックに関する項を参照してください。
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用のRACインスタンス間のロード・バランシングに関する項を参照してください。
ベスト・プラクティスについては、Oracle Tuxedo Advanced Performance Packの使用の単一グループの複数ブランチ(SGMB)に関する項を参照してください。
この機能は、クライアントがドメインを介してリモート・サービスに直接アクセスする機能を提供し、GWTDOMAIN
におけるボトルネックを解消します。Tuxedoが異なるドメイン上で同時リモート・アクセス数が多い状態である場合、この機能により、スループットのパフォーマンスが著しく向上します。
注: | 次のシナリオは、この機能にはお薦めしません。 |
注: | クライアントはリモート・ドメイン内のリモート・サービスにアクセスし、比較的短い期間、そのサービス上で機能します。たとえば、tpinit() の次にいくつかのtpcall() 、次にtpterm() という順番です。RDMA接続の作成/オープン/クローズのオーバーヘッドは、Unix IPCキューにおけるオーバーヘッドよりもずっと高くなります。したがって、この機能は、このシナリオでは明白なパフォーマンス向上をもたらしません。 |
SDPはすべてのTuxedoネットワーク通信上で使用できますが、Direct Cross Node Communication Leveraging RDMAまたはDirect Cross Domain Communication Leveraging RDMAに適用可能なシナリオにはお薦めされません。
Direct Cross Node Communication Leveraging RDMAが有効な状態の場合、Exalogic以外のプラットフォームでOracle Tuxedoを実行する方法は異なります。Oracle Tuxedoアプリケーションを起動する前に、tux_msgq_monitor
を起動しておく必要があります。この項には次のトピックが含まれます:
tux_msgq_monitor
は、Msgq_daemon
デフォルト・モニターとして機能します。Msgq_daemon
の起動とその実行状況の確認を行います。Msgg_daemon
が異常終了すると、tux_msgq_monitor
を使用して再起動します。
Oracle Tuxedoアプリケーションを起動する前に、tux_msgq_monitor
を起動する必要があります。1つのモニターがサービスを提供できるのは、1つの論理マシン上の1つのOracle Tuxedoアプリケーションのみです。
tux_msgq_monitor
を起動する前に、TUXCONFIG、LD_LIBRARY_PATH
およびTUXDIRの各環境変数が適切に設定されているか確認します。次のようにtux_msgq_monitor
を実行します。
tux_msgq_monitor -i <IPoIBアドレス> -d <ポート番号> -M <共有メモリー・サイズ> -K <Msgq_daemonによって使用される共有メモリー・キー>
tux_msgq_monitor
: tux_msgq_monitor
オプションのリストです。
Msgq_daemon によって割り当てられた共有メモリー・サイズ(バイト単位)。tmloadcf –c によって取得されます。詳細は、「Msgq_daemonの共有メモリー・サイズの計算」を参照してください。
|
|
tux_msgq_monitor
の実行時、tux_msgq_monitor
およびMsgq_daemon
という2つのアクティブ・プロセスがあります。
tux_msgq_monitor
を正常に起動したら、Oracle Tuxedoアプリケーションを起動できます。
kill pid -- tux_msgq_monitor's pid
注: | -9を使用してkillコマンドを実行する場合、次の手順を実行してすべてのリソースを消去します。 |
注: | kill pid-- Msgq_daemon pid |
注: | ipcrm –m shmid --Msgq_daemonによって作成された共有メモリー。 |
起動/停止処理を簡略化するシェル・スクリプトがいくつかあります。これらのツールを使用すると、1つのコマンドを実行するだけでtux_msgq_monitor
とOracle Tuxedoアプリケーションの路湯方を起動/停止できます。これらのコマンドを実行する前に、TUXCONFIG、LD_LIBRARY_PATH
およびAPPDIRの各環境変数が適切に設定されているか確認します。
たとえば、マスター・ノードでは次を実行するとOracle Tuxedoを起動/停止できます。
マスター・ノードには、次の2つのシェル・スクリプトがあります。
tux_msgq_monitor
を起動し、tmbootを実行してOracle Tuxedoアプリケーションを起動します。また、オプション「-l」が指定されている場合は、tlistenを起動します。
スレーブ・ノードには、次の2つのシェル・スクリプトがあります。
注: | MPモードでの起動の場合、次の順序でコマンドを実行する必要があります。 |
注: | シャットダウンの場合は、次の順序でコマンドを実行する必要があります。 |
OVMで実行されるOracle Tuxedoには特別な要件がありません。
Exalogic最適化を使用しない場合、特別な要件はありません。詳細は、『Oracle Tuxedo相互運用性ガイド』と「Oracle Tuxedoシステムの12cリリース1 (12.1.1)へのアップグレード」を参照してください。
注: | Exalogic最適化がOPTIONS で指定されている場合は、以前のリリースからのホット・アップグレードを実行できません。 |
TUXCONFIG
環境変数によって参照される場所にロードします。 Oracle Tuxedoをインストールする前に、Exalogic環境の現在の状態を理解する必要があります。
Oracle Exalogicマシン・オーナーズ・ガイドに記載されるすべてのタスクは完了済と仮定されます。このガイドでは、データ・センター・サイトの準備、Oracle Exalogicマシンの試験稼動、IPアドレスの割当てを含む初期ネットワーク構成、およびSun ZFS Storage 7320 Applianceの初期設定が説明されています。
Oracle Tuxedo最適化は、Exalogic LinuxおよびSPARCサーバーの両方で実行できます。詳細は、「Oracle Tuxedo 12cリリース2 (12.1.3)プラットフォーム・データ・シート」を参照してください。
Oracle Tuxedo製品バイナリは、Sun ZFS Storage 7320アプライアンスの場所にある共有のいずれかにインストールできるため、バイナリを1つコピーすれば任意のExalogicノードでOracle Tuxedoを実行できます。
注: | 共有ファイル・システムは、すべてのコンピュート・ノードによってアクセス可能である必要があります。各ノードにローカル・ユーザー・アカウントを作成できます。ただし、UIDおよびGIDは(アクセス権限の問題を避けるため)必ず同一のものにしてください。また、ユーザー用のNISアカウントを作成できます。 |
各Oracle Tuxedoごとに異なる実装を使用してOracle Tuxedoプラグイン・インタフェースを開発する場合、Oracle Tuxedoは別々のディレクトリにインストールする必要があります。
Oracle Tuxedo 12cリリース2 (12.1.3)インストーラは、Oracle Universal Installer (OUI)に基づいています。詳細は、『Oracle Tuxedoシステムのインストール』を参照してください。