Oracle Internet Directory 管理者ガイド 10gリリース2(10.1.2) B15775-02 |
|
第20章「ディレクトリの容量計画」の説明に従って容量計画を完了し、必要なハードウェアを用意した後は、ハードウェアとソフトウェアの組合せで必要なレベルのパフォーマンスが得られることを確認する必要があります。この章では、Oracle Internet Directoryのチューニングに関するガイドラインを示します。次の項目について説明します。
Oracle Internet Directoryに関するパフォーマンスの主な測定方法は次の2つです。
この時間は、各操作が完了するまでの時間です。
このスループットは、Oracle Internet Directoryのインスタンスがクライアントの操作を完了できる率です。
テストの結果、パフォーマンスの改善が必要と考えられる場合は、次の各項に記載されている情報で、パフォーマンスの問題点を識別して調整できます。
Solarisおよび大部分の他のUNIXオペレーティング・システムを使用している場合は、次の各ツールを理解しておくことをお薦めします。
Microsoft Windowsを使用している場合は、次のツールを理解しておくことをお薦めします。
ツール | 説明 |
---|---|
Windows Performance Monitor |
システム内のイベントのカスタマイズされたビューを表示します。 |
Windowsタスク・マネージャ |
システムで実行されている主なタスクの最高レベルの出力(UNIXの |
Oracle Databaseを使用する場合は、次のツールを理解しておくことをお薦めします。
オペレーティング・システム・ツール以外に、カスタマ環境で使用されているLDAPアプリケーションも待機時間やスループットの測定方法を提供しています。
さらに、様々なデータベース'ods'スキーマ・オブジェクトを分析して統計を見積もるために、$
ORACLE_HOME
/ldap/admin
にあるデータベース統計収集ツール(oidstats.sql)が提供されています。
CPUはおそらく、すべてのソフトウェアが使用する最も重要なリソースです。第20章「ディレクトリの容量計画」では、所定のアプリケーション負荷に対して必要となるCPU能力の概算を示しましたが、十分にチューニングされていないと、CPUリソースが効率的に使用されない原因となります。次の各項目のいずれかに該当する場合は、CPUリソースのチューニングを考慮してください。
内部的なベンチマークでは、CPUリソースの約70〜75%がOracle Internet Directoryのプロセスで消費され、残りの約25〜30%がデータベース接続に対応するOracleのフォアグラウンド・プロセスで消費されている場合に、Oracle Internet Directoryが最も効率よく実行されることが示されています。CPU使用量を監視すると同時に、システム領域で使用されている時間とユーザー領域で使用されている時間の割合を監視することも重要です。内部的なベンチマークでは、約85%がユーザー時間、約15%がシステム時間の場合にスループット値が最大であることが示されています。
この項では、次の項目について説明します。
CPUに対するOracle Internet Directoryプロセスの需要は、ORCLSERVERPROCS
およびORCLMAXCC
の各パラメータで制御できます。表21-1に、様々なクライアント負荷に対応したパラメータの推奨値を示します。
ORCLSERVERPROCS | ORCLMAXCC |
操作スループットの低下 なしでサポートされる同時クライアントの数 |
接続を切断せずにサポートされるクライアントの数 | 必要なCPUの数 |
---|---|---|---|---|
1 |
2 |
40 |
|
1 |
2 |
10 |
400 |
800 |
2 |
4 |
10 |
800 |
1600 |
4 |
8 |
10 |
1600 |
3200 |
8 |
同時クライアントの数が500で、ORCLSERVERPROCSの値が4、ORCLMAXCCの値が10の場合を例にとると、次のような構成になります。
Oracle Internet Directoryは、操作スループットおよびクライアント同時実行性の両面に関して、CPUリソースを確実に調整します。前述の表より、4つのCPUがあり、クライアント'n'台の同時実行性に対して、毎秒'p'件のピーク時操作スループットを維持できるとします。
CPUの数の追加またはより高速なCPUの使用によって、次の利点が得られます。
最大負荷時のCPU使用量が100%未満で、かなりの割合の時間(5%以上)システムがアイドル状態の場合は、Oracle Internet Directoryプロセスの構成数が少なく、CPUリソースを十分利用していないことを示しています。この問題を解決するためには、ORCLSERVERPROCSとORCLMAXCCの値を計画的に増やして、CPU稼働率が100%になり、システム時間とユーザー時間が次の割合になるように調整してください。
次の条件の両方に該当する場合のみ、Oracleのフォアグラウンド・プロセスに関するCPUリソースのチューニングを考慮してください。
Oracleのフォアグラウンド・プロセスが過度にCPUを消費している場合は、Oracle Internet Directoryのデータベースに対する問合せが、多数のCPUサイクルを使用していることを示しています。データベースが実行するこの種の基本的な操作の場合は、ユーザーが制御できる部分はほとんどありませんが、次のことを試してください。
ANALYZE
コマンドを使用して収集します。この統計は、コストベースのオプティマイザが、Oracle Internet Directoryで生成される問合せ用に、より適した実行計画を作成するために役立ちます。統計の収集には、$
ORACLE_HOME
/ldap/admin/
oidstats.sql
を使用できます。
ANALYZE
でよい結果が得られず、使用されるLDAP問合せに多数のフィルタが含まれている場合は、フィルタの指定順序を単純に再構成(最も特殊なフィルタを最初にし、最も一般的なフィルタを最後に指定)すると、Oracleフォアグラウンド・プロセスのCPU消費削減に効果があります。一部の対称型マルチ・プロセッサ(SMP)システムには、特定のプロセスを特定のCPUにバインドする機能があります。プロセスをプロセッサにバインドする方法は、通常はお薦めしませんが、次の条件に該当する場合は、この方法でパフォーマンスが向上する場合があります。
内部的なベンチマークでは、Oracle Internet Directoryサーバー・プロセスと関連するOracleシャドウ・プロセスを同じCPUにバインドすることが、一般的に最大のパフォーマンスを上げると認められています。
前述の項に記載されているヒントでCPU関連のパフォーマンスの問題が解決されない場合は、次のオプションを使用してください。
CPUの次に、メモリーのチューニングが重要です。Oracle Internet Directoryにおいてメモリーを主に消費しているのは、Oracle Databaseです。バックエンド・データベースのSGAは、Oracle Internet DirectoryとOracleプロセスがそのプライベート・スタックとヒープを操作するために必要な領域を確保しつつ、十分な大きさで作成する必要があります。この項では、SGAの様々なコンポーネントの判別に関して詳細に説明します。
この項では、次の項目について説明します。
SGAは、Oracle Databaseを実行しているシステムの使用可能な物理メモリーに基づいてサイズ設定してください。
SGAの使用可能なサイズを設定した後、2つの主なチューニング項目を考慮してください。
共有プール・サイズの初期見積りは、前項で決めた同時データベース接続ごとに0.5MBです。
この見積りで、SGA合計の30%を超える領域を消費する場合は、SGA合計の30%を使用してください。
残りの使用可能なSGAサイズの60%を、データベースに対するブロック・サイズで除算し、DB_BLOCK_BUFFERSの数にこの値を使用します。この2つの値は初期見積りであり、BSTAT/ESTATやその他のRDBMS監視ツールを使用してさらに詳細に見積もると、最大のパフォーマンスを得るための正確なサイズを設定できます。
データベースとOracleディレクトリ・サーバーを同じコンピュータ上で実行するためのメモリーが不足している場合は、データベースを別のコンピュータに配置できます。
ディスクI/Oの均衡化は、RDBMS全般、つまりOracle Internet Directoryのパフォーマンスにおいて重要な考慮事項です。一般的に、次の技術を1つ以上使用すると、I/Oスループットを最大にできます。
この項では、Oracle Internet Directoryのインストールに有効な、その他のチューニング可能なパラメータについて説明します。
表21-2は、様々なクライアント負荷に対するRDBMSパラメータの推奨値を一覧にしたものです。これらのパラメータは、初期化パラメータ・ファイルで設定可能です。
この項では、チューニング可能な各RDBMSパラメータについての詳細を説明します。次の項目について説明します。
OPEN_CURSORSパラメータを次のように設定します。
OPEN_CURSORS=200
Oracle Internet Directoryサーバーのカーソル・キャッシュを処理するにはOracle Databaseのデフォルト値(50前後)では小さすぎます。この値は、他のOracle Internet Directoryサーバーのパラメータ(SERVERSの数やWORKERSの数など)に依存していません。値を200に設定すると、どのようなサイズのディレクトリ情報ツリーにも対応できます。
Oracle Internet Directoryのレプリケーションは、データベースのレプリケーションに依存しています。Oracle Internet Directoryのレプリケーションを使用する場合は、JOB_QUEUE_PROCESSESおよびPARALLEL_MIN_SERVERSの各データベース・パラメータを1以上に設定します。次に例を示します。
JOB_QUEUE_PROCESSES=1 PARALLEL_MIN_SERVERS=1
SESSIONSパラメータを次のように設定します。
PROCESSES = (# OID server processes for each instance) x (# DB Connections for each server + 1) x (# of OID instances) + 20 SESSIONS = 1.1 * PROCESSES + 5
各Oracle Internet Directoryサーバー・プロセスには、そのサーバーに構成されているワーカー・スレッドの数と等しい同時データベース接続数に1を加算した数が必要です。したがって、許容される同時データベース接続の合計数は、インスタンスごとのサーバー当りのこの数値になる必要があります。パラメータ値に追加されている20の接続数には、Oracleバックグラウンド・プロセスとその他のOracle Internet Directoryプロセス(OIDモニター、OID制御、Oracleディレクトリ・レプリケーション・サーバーおよびバルク・ツールなど)が考慮されています。
必要な同時データベース接続の合計数によっては、SESSIONSパラメータの設定で決められたように、共有サーバー・プロセスの使用がシステム全体の負荷をより均衡化するために役立つ場合があります。必要な同時データベース接続の合計数が300を超える場合は、共有サーバーを構成してください。必要なデータベース接続10ごとに、1つの共有サーバーを構成してください。
SGAに関係する主なパラメータの説明は、「メモリーのチューニング」に記載されています。その他のチューニング可能なパラメータを次にいくつか示します。
ディスク上でソートが行われないように、十分なソート領域を確保するために、262144(256K)に設定してください。
初期見積りとして32768(32K)に設定してください。ログの書込みパフォーマンスがパフォーマンスの問題となる場合は、(REDOログ領域リクエスト/REDOエントリ) > 1/5000となるように十分に大きい値を使用して、LGWRプロセスが遅延しないようにしてください。この数値は全体でも、可変のSGAサイズにほとんど影響しないサイズであるため、この値の多少の増加が問題となることはありません。
Oracle Internet Directory 10gリリース2(10.1.2)では、ディレクトリ・サーバーのエントリ・キャッシュは、単一のディレクトリ・サーバー・インスタンスでのみサポートされます。エントリ・キャッシングの利点は、エントリ・キャッシュのヒット率が非常に高い場合に最大化されます。次のような小中規模のディレクトリ配置では、エントリ・キャッシュの使用をお薦めします。
内部ベンチマークでは、エントリのワーキング・セットが数十万のエントリであるディレクトリ配置の場合、エントリ・キャッシュによって、最大1000の同時クライアントに対する操作のスループットが2倍になることが示されています。
より大規模なディレクトリ・エントリのワーキング・セットが存在し、クライアントの同時実行性が高いディレクトリ配置では、マルチプロセス・ディレクトリ・サーバー・インスタンスが使用され、Oracleのバッファ・キャッシュによって、スケーラビリティが増大します。
この項では、次の項目について説明します。
member
またはuniquemember
属性のいずれかの値が、数千の属性値を持つグループ・エントリの検索では、待機時間が長くなる可能性があります。member
およびuniquemember
以外の属性を持つ大きなグループ・エントリの検索で、待機時間が非常に長くなった場合は、次の操作を実行します。
必須属性
を指定します。
必須属性
を指定してもまだ満足できる待機時間でなければ、索引EI_ATTRSTORE
を再作成してみてください。
DROP INDEX EI_ATTRSTORE; CREATE BITMAP INDEX EI_ATTRSTORE ON DS_ATTRSTORE(ENTRYID,ATTRNAME) TABLESPACE OLTS_ATTRSTORE PARALLEL COMPUTE STATISTICS NOLOGGING;
この方法でEI_ATTRSTORE
を再作成することにより、通常のメッセージング検索操作のパフォーマンスが5%〜10%低下する可能性がありますので、慎重にかつ必要なときのみ使用してください。
通常の検索リクエストを処理する場合、ディレクトリ・サーバーはSQL文をOracle Databaseに送信します。指定された属性のレスポンス時間が、属性の値によって大きく異なる場合、この属性はスキュー属性であるとみなされます。たとえば、my_attribute=value1
とmy_attribute=value2
の検索で、レスポンス時間が大きく異なる場合、my_attribute
はスキュー属性であるとみなされます。
このような属性を、dsaconfig
エントリにあるorclskewedattribute
属性の値として追加することにより、検索時のレスポンス時間を均一にできます。dsaconfig
エントリの識別名は、cn=dsaconfig,cn=configsets,cn=oracle internet directory
です。
デフォルトでは、objectclass
属性は、orclskewedattribute
属性内に値としてリストされます。
データベースへの問合せを最適化する手順は、次のとおりです。
スキュー属性の検索を最適化するには、ldapmodifyを使用して、その属性をorclskewedattribute
属性の値として追加します。
たとえば、my_attribute
をorclskewedattribute
属性に追加するには、次のように入力します。
ldapmodify -D "cn=orcladmin" -w password -h host -p port <<! dn: cn=dsaconfig,cn=configsets,cn=oracle internet directory changetype: modify add: orclskewedattribute orclskewedattribute: my_attribute !
「システム操作属性の設定」の説明に従って、サーバー処理の制限時間を設定する場合は、検索の完了までの最大時間(秒)を指定します。サーバーのパフォーマンスを調整する場合は、検索制限時間モードを厳密に設定するか、おおよその時間に設定することもできます。正確な時間に設定すると、検索は必ず指定した秒数で終了します。おおよその時間に設定すると、検索は指定した秒数から2秒の範囲内で終了します。作業負荷が低い場合は、後者の方がより高いパフォーマンスを得られます。
制限時間モードを設定する手順は、次のとおりです。
正確な時間か、おおよその時間のいずれかの検索制限時間モードを指定するには、orcltlimitmode
属性を設定します。値0
は正確な時間で、値1
はおおよその時間です。デフォルト値は1
です。
クライアントとディレクトリ・サーバー間の接続のアイドル・タイムを指定できます。クライアント/サーバー間の接続のタイムアウトを設定する手順は、次のとおりです。
|
![]() Copyright © 1995, 2005 Oracle. All Rights Reserved. |
|