ヘッダーをスキップ

Oracle Internet Directory 管理者ガイド
10gリリース2(10.1.2)
B15775-02
目次
目次
索引
索引

戻る 次へ

21
ディレクトリのチューニングに関する考慮事項

第20章「ディレクトリの容量計画」の説明に従って容量計画を完了し、必要なハードウェアを用意した後は、ハードウェアとソフトウェアの組合せで必要なレベルのパフォーマンスが得られることを確認する必要があります。この章では、Oracle Internet Directoryのチューニングに関するガイドラインを示します。次の項目について説明します。

チューニングの概要

Oracle Internet Directoryに関するパフォーマンスの主な測定方法は次の2つです。

テストの結果、パフォーマンスの改善が必要と考えられる場合は、次の各項に記載されている情報で、パフォーマンスの問題点を識別して調整できます。

パフォーマンス・チューニング用のツール

Solarisおよび大部分の他のUNIXオペレーティング・システムを使用している場合は、次の各ツールを理解しておくことをお薦めします。

ツール  説明 

top 

システムにおいてCPUを最も多く消費しているタスクを表示します。 

vmstat 

Virtual Memory Managerなど、システムの様々な部分の実行統計を示します。 

mpstat 

vmstatと同様の出力ですが、システム内の各種CPUにわたって分割して示します。このユーティリティはSolarisでのみ使用可能です。 

iostat 

各種ディスク・コントローラからのディスクI/O統計を示します。 

Microsoft Windowsを使用している場合は、次のツールを理解しておくことをお薦めします。

ツール  説明 

Windows Performance Monitor 

システム内のイベントのカスタマイズされたビューを表示します。 

Windowsタスク・マネージャ 

システムで実行されている主なタスクの最高レベルの出力(UNIXのtopと同様)を提供します。 

Oracle Databaseを使用する場合は、次のツールを理解しておくことをお薦めします。

オペレーティング・システム・ツール以外に、カスタマ環境で使用されているLDAPアプリケーションも待機時間やスループットの測定方法を提供しています。

さらに、様々なデータベース'ods'スキーマ・オブジェクトを分析して統計を見積もるために、$ORACLE_HOME/ldap/adminにあるデータベース統計収集ツール(oidstats.sql)が提供されています。


注意

Windowsオペレーティング・システムでシェル・スクリプト・ツールを実行するには、次のいずれかのUNIXエミュレーション・ユーティリティが必要です。

  • Cygwin 1.3.2.2-1以上。http://sources.redhat.comを参照してください。

  • MKS Toolkit 8.6以上。http://www.datafocus.com/を参照してください。

 

関連資料

『Oracle Identity Managementユーザー・リファレンス』のoidstats.sqlコマンドライン・ツールのリファレンス 

CPU使用量のチューニング

CPUはおそらく、すべてのソフトウェアが使用する最も重要なリソースです。第20章「ディレクトリの容量計画」では、所定のアプリケーション負荷に対して必要となるCPU能力の概算を示しましたが、十分にチューニングされていないと、CPUリソースが効率的に使用されない原因となります。次の各項目のいずれかに該当する場合は、CPUリソースのチューニングを考慮してください。

内部的なベンチマークでは、CPUリソースの約70〜75%がOracle Internet Directoryのプロセスで消費され、残りの約25〜30%がデータベース接続に対応するOracleのフォアグラウンド・プロセスで消費されている場合に、Oracle Internet Directoryが最も効率よく実行されることが示されています。CPU使用量を監視すると同時に、システム領域で使用されている時間とユーザー領域で使用されている時間の割合を監視することも重要です。内部的なベンチマークでは、約85%がユーザー時間、約15%がシステム時間の場合にスループット値が最大であることが示されています。

この項では、次の項目について説明します。

Oracle Internet Directoryのプロセスに関するCPUのチューニング

CPUに対するOracle Internet Directoryプロセスの需要は、ORCLSERVERPROCSおよびORCLMAXCCの各パラメータで制御できます。表21-1に、様々なクライアント負荷に対応したパラメータの推奨値を示します。

表21-1    ORCLSERVERPROCSおよびORCLMAXCCパラメータの推奨値 
ORCLSERVERPROCS  ORCLMAXCC  操作スループットの低下
なしでサポートされる同時クライアントの数
 
接続を切断せずにサポートされるクライアントの数  必要なCPUの数 

40 

 

10 

400 

800 

10 

800 

1600 

10 

1600 

3200 

同時クライアントの数が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のフォアグラウンド・プロセスが過度にCPUを消費している場合は、Oracle Internet Directoryのデータベースに対する問合せが、多数のCPUサイクルを使用していることを示しています。データベースが実行するこの種の基本的な操作の場合は、ユーザーが制御できる部分はほとんどありませんが、次のことを試してください。

SMPシステムにおけるプロセッサ親和性の利用

一部の対称型マルチ・プロセッサ(SMP)システムには、特定のプロセスを特定のCPUにバインドする機能があります。プロセスをプロセッサにバインドする方法は、通常はお薦めしませんが、次の条件に該当する場合は、この方法でパフォーマンスが向上する場合があります。

内部的なベンチマークでは、Oracle Internet Directoryサーバー・プロセスと関連するOracleシャドウ・プロセスを同じCPUにバインドすることが、一般的に最大のパフォーマンスを上げると認められています。

CPUがボトルネックとなっているシステムに関するその他の方法

前述の項に記載されているヒントでCPU関連のパフォーマンスの問題が解決されない場合は、次のオプションを使用してください。

メモリーのチューニング

CPUの次に、メモリーのチューニングが重要です。Oracle Internet Directoryにおいてメモリーを主に消費しているのは、Oracle Databaseです。バックエンド・データベースのSGAは、Oracle Internet DirectoryとOracleプロセスがそのプライベート・スタックとヒープを操作するために必要な領域を確保しつつ、十分な大きさで作成する必要があります。この項では、SGAの様々なコンポーネントの判別に関して詳細に説明します。

この項では、次の項目について説明します。

Oracle Database用のSGAのチューニング

SGAは、Oracle Databaseを実行しているシステムの使用可能な物理メモリーに基づいてサイズ設定してください。

関連資料

SGAを適切なサイズに設定する方法の詳細は、Oracle Databaseドキュメント・ライブラリの『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。このマニュアルは、SGAサイズがページング・スワッピング・アクティビティを増やさないようにする方法について説明しています。後者はパフォーマンスに悪影響を及ぼします。 

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パラメータの推奨値を一覧にしたものです。これらのパラメータは、初期化パラメータ・ファイルで設定可能です。

表21-2    様々なクライアント負荷に対するRDBMSの推奨値 
パラメータ  同時LDAP
クライアントの数が500の場合
 
同時LDAP
クライアントの数が1000の場合
 
同時LDAP
クライアントの数が1500の場合
 
同時LDAP
クライアントの数が2000の場合
 

OPEN_CURSORS 

200 

200 

200 

200 

SESSIONS 

225 

600 

800 

1200 

DATABASE_BLOCK_BUFFERS 

200〜250MB 

200〜250MB 

200〜250MB 

200〜250MB 

DATABASE_BLOCK_SIZE 

8192 

8192 

8192 

8192 

SHARED_POOL_SIZE 

30〜40MB 

30〜40MB 

30〜40MB 

30〜40MB 

PROCESSES 

400 

800 

1000 

1500 

この項では、チューニング可能な各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

Oracle Internet Directoryサーバーの構成に依存しているパラメータ

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つの共有サーバーを構成してください。


注意

必要な同時データベース接続数は、選択したハードウェアに依存します。共有サーバーの構成の詳細は、Oracle Databaseドキュメント・ライブラリの『Oracle Database Net Services管理者ガイド』および『Oracle Database管理者ガイド』を参照してください。 


ハードウェア・リソースに依存しているSGAパラメータ

SGAに関係する主なパラメータの説明は、「メモリーのチューニング」に記載されています。その他のチューニング可能なパラメータを次にいくつか示します。

エントリ・キャッシング

Oracle Internet Directory 10gリリース2(10.1.2)では、ディレクトリ・サーバーのエントリ・キャッシュは、単一のディレクトリ・サーバー・インスタンスでのみサポートされます。エントリ・キャッシングの利点は、エントリ・キャッシュのヒット率が非常に高い場合に最大化されます。次のような小中規模のディレクトリ配置では、エントリ・キャッシュの使用をお薦めします。

内部ベンチマークでは、エントリのワーキング・セットが数十万のエントリであるディレクトリ配置の場合、エントリ・キャッシュによって、最大1000の同時クライアントに対する操作のスループットが2倍になることが示されています。

より大規模なディレクトリ・エントリのワーキング・セットが存在し、クライアントの同時実行性が高いディレクトリ配置では、マルチプロセス・ディレクトリ・サーバー・インスタンスが使用され、Oracleのバッファ・キャッシュによって、スケーラビリティが増大します。

関連項目

エントリ・キャッシングを使用可能にして構成するために設定する属性の詳細は、「システム操作属性の設定」を参照してください。 

検索の最適化

この項では、次の項目について説明します。

大きいグループ・エントリの検索の最適化

memberまたはuniquemember属性のいずれかの値が、数千の属性値を持つグループ・エントリの検索では、待機時間が長くなる可能性があります。memberおよびuniquemember以外の属性を持つ大きなグループ・エントリの検索で、待機時間が非常に長くなった場合は、次の操作を実行します。

  1. グループ・エントリの属性をすべて取得する必要がないのであれば、待機時間を最適化するために検索リクエストに必須属性を指定します。

  2. 必須属性を指定してもまだ満足できる待機時間でなければ、索引EI_ATTRSTOREを再作成してみてください。

    1. Oracle Internet Directoryインスタンスを停止します。

    2. ODSユーザーとしてOracle Internet Directoryデータベースにログインし、次の問合せを実行します。

      DROP INDEX EI_ATTRSTORE;
      
      CREATE BITMAP INDEX EI_ATTRSTORE ON
      DS_ATTRSTORE(ENTRYID,ATTRNAME)
      TABLESPACE OLTS_ATTRSTORE
      PARALLEL COMPUTE STATISTICS NOLOGGING;
      
      
    3. Oracle Internet Directoryインスタンスを起動します。

    この方法でEI_ATTRSTOREを再作成することにより、通常のメッセージング検索操作のパフォーマンスが5%〜10%低下する可能性がありますので、慎重にかつ必要なときのみ使用してください。

スキュー属性の検索の最適化

通常の検索リクエストを処理する場合、ディレクトリ・サーバーはSQL文をOracle Databaseに送信します。指定された属性のレスポンス時間が、属性の値によって大きく異なる場合、この属性はスキュー属性であるとみなされます。たとえば、my_attribute=value1my_attribute=value2の検索で、レスポンス時間が大きく異なる場合、my_attributeはスキュー属性であるとみなされます。

このような属性を、dsaconfigエントリにあるorclskewedattribute属性の値として追加することにより、検索時のレスポンス時間を均一にできます。dsaconfigエントリの識別名は、cn=dsaconfig,cn=configsets,cn=oracle internet directoryです。

デフォルトでは、objectclass属性は、orclskewedattribute属性内に値としてリストされます。

Oracle Directory Managerを使用したスキュー属性の検索の最適化

データベースへの問合せを最適化する手順は、次のとおりです。

  1. ナビゲータ・ペインで、「Oracle Internet Directoryサーバー」を展開して、ディレクトリ・サーバー・インスタンスを選択します。

  2. 右側のペインで「問合せの最適化」タブを選択します。この「問合せの最適化」タブ・ページの各フィールドの説明は、表A-38を参照してください。

  3. 問合せの最適化」タブ・ページの「低カーディナリティの属性」フィールドで、スキュー属性として指定する属性を入力します。

  4. 適用」を選択します。

Idapmodifyを使用したスキュー属性の検索の最適化

スキュー属性の検索を最適化するには、ldapmodifyを使用して、その属性をorclskewedattribute属性の値として追加します。

たとえば、my_attributeorclskewedattribute属性に追加するには、次のように入力します。

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秒の範囲内で終了します。作業負荷が低い場合は、後者の方がより高いパフォーマンスを得られます。

Oracle Directory Managerを使用した制限時間モードの設定

制限時間モードを設定する手順は、次のとおりです。

  1. ナビゲータ・ペインで、「Oracle Internet Directoryサーバー」を展開して、ディレクトリ・サーバー・インスタンスを選択します。

  2. 右側のペインで「問合せの最適化」タブを選択します。

  3. 問合せの最適化」タブ・ページの「時間制限モード」フィールドで、「精度」または「近似」を選択します。

  4. 適用」を選択します。

ldapmodifyを使用した制限時間モードの設定

正確な時間か、おおよその時間のいずれかの検索制限時間モードを指定するには、orcltlimitmode属性を設定します。値0は正確な時間で、値1はおおよその時間です。デフォルト値は1です。

クライアント/サーバー間の接続のタイムアウトの設定

クライアントとディレクトリ・サーバー間の接続のアイドル・タイムを指定できます。クライアント/サーバー間の接続のタイムアウトを設定する手順は、次のとおりです。

  1. ナビゲータ・ペインで、「Oracle Internet Directoryサーバー」を展開して、ディレクトリ・サーバー・インスタンスを選択します。

  2. 右側のペインで「問合せの最適化」タブを選択します。

  3. 問合せの最適化」タブ・ページの「LDAP接続タイムアウト」フィールドに、接続が終了するまで、ディレクトリ・クライアントがアイドル状態を維持できる最大秒数を入力します。デフォルトは0です。これはタイムアウトがないことを意味します。

  4. 適用」を選択します。


戻る 次へ
Oracle
Copyright © 1995, 2005 Oracle.

All Rights Reserved.
目次
目次
索引
索引