| Oracle® Fusion Middleware Oracle Directory Server Enterprise Edition管理者ガイド 11g リリース1 (11.1.1.7.0) B72439-01 |
|
![]() 前 |
![]() 次 |
この章では、Directory Serverの構成方法について説明します。これにはdsconfコマンドを使用できます(dsconfについての説明のマニュアル・ページを参照)。
また、Directory Service Control Center(DSCC)も使用でき、こちらが推奨される方法です。DSCCでは、構成プロセスの間に追加のチェックが行われ、これによりエラーを最小限に抑えられます。さらに、DSCCでは、構成をあるサーバー・インスタンスから別のサーバー・インスタンスにコピーできます。DSCCの使用方法の詳細は、DSCCのオンライン・ヘルプを参照してください。
Directory Serverインスタンスの構成を表示するには、dsconf infoを実行します。
$ dsconf info -h host -p port Instance path : instance path Global State : read-write Host Name : host Port : port Secure port : secure port Total entries : 20844 Server version : 11.1.1.6 Suffixes : suffix-DN Dest. Servers : host:port On-Going Tasks : import Finished Tasks : backup =================== Suffix suffix-DN Replication role : master Attribute to reindex : mail country telephonenumber Index filter analyzer : Running for suffix-DN (Nov 7, 2008 4:56:33 PM)
この出力は、接尾辞および、ターゲット・サーバーとのレプリケーション承諾が作成されていることを前提としています。また、実行中のインポート操作および終了したバックアップ操作も表示されます。
この出力には、レプリケーション・ロール、索引を再作成する属性、索引フィルタ・アナライザなどの接尾辞関連情報も表示されます。特定の情報が使用できない場合、その情報はdsconf info出力に表示されません。
構成を変更する方法としては、DSCCを使用することをお薦めします。このブラウザ・インタフェースには、タスクベースの制御が用意されており、迅速かつ効率的に構成を設定できます。DSCCを使用すると、1つのサーバーの構成設定を変更してから、それを他のサーバーにコピーできます。また、DSCCのインタフェースは、構成の複雑さや相互依存の解決に役立ちます。DSCCによる構成変更の詳細な手順は、DSCCのオンライン・ヘルプを参照してください。
コマンドライン・ツールを使用するスクリプトを作成することで、構成タスクを自動化できます。
dsconfコマンドを使用して、コマンドラインから構成を変更します。このコマンドは、LDAPを使用してcn=configサブツリーを変更します。dsconfの詳細は、「Directory Serverのコマンドライン・ツール」を参照してください。
dsconfでは実行できないタスクの場合は、ldapmodifyコマンドを使用します。
|
注意:
$ dsconf help-properties -v 必要な項目についてプロパティのヘルプを検索します。たとえば、UNIXプラットフォームの場合は、次のように入力してメモリー・キャッシュのプロパティを検索します。 $ dsconf help-properties -v | grep cache |
cn=config内の構成エントリの詳細と、許容値の範囲を含むすべての構成エントリおよび属性の詳細は、Oracle Directory Server Enterprise Editionのリファレンスを参照してください。
dse.ldifファイルの変更Directory Serverでは、そのすべての構成情報が次のファイル内に格納されます。
instance-path/config/dse.ldif
|
注意:
|
dse.ldifファイルの形式は、LDIF(LDAP Data Interchange Format)です。LDIFは、エントリ、属性およびその値をテキスト表現したもので、RFC 2849 (http://www.ietf.org/rfc/rfc2849)に定義されている標準形式です。
dse.ldifファイルにあるDirectory Serverの構成の内容は、次のとおりです。
cn=configエントリの属性と値。
cn=configの下のサブツリーに含まれるすべてのエントリと、その属性および属性値。
ルート・エントリ("")とcn=monitorエントリのオブジェクト・クラスおよびアクセス制御命令。これらのエントリのその他の属性は、サーバーによって生成されます。
このファイルの読書きの権限を持っているのは、Directory Serverインスタンスを所有するシステム・ユーザーのみです。
Directory Serverでは、LDAPを通じてほとんどの構成設定を読取りおよび書込み書き可能にできます。デフォルトでは、ディレクトリのcn=configブランチは、許可されているすべてのユーザーが読取りでき、ディレクトリ・マネージャ(cn=Directory Manager)とcn=Administrators,cn=configの下の管理ユーザーのみが書込みできます。管理ユーザーは、他のディレクトリ・エントリと同様に、構成エントリを表示および変更できます。
cn=configエントリの下には構成エントリ以外のものは作成しないでください。通常のエントリとは異なり、作成されたエントリは、スケーラブルなデータベースとは異なるdse.ldifファイルに格納されるためです。多くのエントリ、特に頻繁に更新されるエントリがcn=configの下に格納されている場合、パフォーマンスが低下する可能性が高くなります。ただし、レプリケーション・マネージャ(サプライヤ・バインドDN)などの特別なユーザー・エントリをcn=configの下に格納しておくと、構成情報を集中管理できて便利です。
|
注意:
WARNING<4227> - Plugins - conn=-1 op=-1 msgId=-1 - Detected plugin paths from another install, using current install. この警告メッセージは、Sun Microsystemsのベンダーによるプラグインでのみ表示されます。 |
Directory Serverには、デフォルトの管理ユーザーであるディレクトリ・マネージャが含まれています。
この項では、rootアクセス権を持つ管理ユーザーを作成する方法と、ディレクトリ・マネージャを構成する方法について説明します。
name="DirAdminDN" content="cn=admin,cn=Administrators,cn=config"と同じ権限を持つ新しい管理ユーザーを作成する場合は、グループcn=Administrators,cn=config内に新しいユーザーを作成します。このグループ内のすべてのユーザーが、ディレクトリ・マネージャと同じアクセスを許可するグローバルACIの対象となります。
このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。
新しい管理ユーザーを作成します。
たとえば、cn=Admin24,cn=Administrators,cn=configという新しいユーザーを作成するには、次のように入力します。
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
dn: cn=admin,cn=Administrators,cn=config
changetype: add
objectclass: top
objectclass: person
userPassword: password
description: Administration user with the same access rights as Directory Manager.
-Dおよび-wオプションでは、それぞれ、このエントリの作成に必要な権限を持つユーザーのバインドDNとパスワードを指定します。
ディレクトリ・マネージャとは、特権を持つサーバー管理者のことで、UNIXシステムのrootユーザーに相当します。アクセス制御はディレクトリ・マネージャには適用されません。
ほとんどの管理タスクでは、ディレクトリ・マネージャを使用する必要はありません。かわりに、ユーザーcn=admin,cn=Administrators,cn=configを使用するか、cn=Administrators,cn=configの下に作成するその他のユーザーを使用できます。ディレクトリ・マネージャを必要とするタスクは、ルートACIの変更と、レプリケーションの修復や削除記録の検索などのレプリケーションのトラブルシューティング・タスクのみです。
ディレクトリ・マネージャDNおよびパスワードを変更でき、パスワードを自動的に読み取ることができるファイルを作成できます。
このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。
既存のディレクトリ・マネージャDNを検索します。
$ dsconf get-server-prop -hhost-pportroot-dn root-dn:cn=Directory Manager
必要に応じてディレクトリ・マネージャの設定を変更します。
ディレクトリ・マネージャDNを変更するには、次のように入力します。
$ dsconf set-server-prop -h host -p port root-dn:new-root-dn
ディレクトリ・マネージャDNの中に空白文字がある場合は、引用符を使用します。次に例を示します。
$ dsconf set-server-prop -h host1 -p 1389 root-dn:"cn=New Directory Manager"
ディレクトリ・マネージャのパスワードを変更するには、次のように入力します。
パスワード設定用の一時ファイルを作成します。このファイルが一度読み取られ、パスワードは将来使用するために保存されます。
$ echo password> /tmp/pwd.txt
サーバー・ルートのパスワード・ファイル・プロパティを設定します。
$ dsconf set-server-prop -h host -p port root-pwd-file:/tmp/pwd.txt
このコマンドは、サーバーにパスワード・ファイルの読取りを要求します。パスワード・ファイル・プロパティの設定が完了したら、一時パスワード・ファイルを削除します。
$ rm /tmp/pwd.txt
Directory Serverのルート・エントリ(長さ0のDN ""によるベース・オブジェクト検索で返されるエントリ)と、cn=config、cn=monitorおよびcn=schemaの下のサブツリーには、Directory Serverによって自動的に生成されるアクセス制御命令(ACI)が含まれます。これらのACIは、ディレクトリ・エントリに対するユーザー・アクセス権を確認するために使用されます。評価目的としては、これらのACIで十分です。しかし、本番のデプロイメントの場合には、アクセス制御要件を評価し、独自のアクセス制御を設計する必要があります。
セキュリティ上の理由で1つまたは複数の追加のサブツリーの存在を非表示にし、構成情報を保護する場合は、追加のACIをDIT上に配置する必要があります。
ACI属性を、非表示にするサブツリーのベースにあるエントリに配置します。
ACIをルートDSEエントリのnamingContexts属性に配置します。namingContextsというルートDSEエントリに、Directory Serverの各データベースのベースDNのリストがあります。
ACIをcn=configサブツリーとcn=monitorサブツリーに配置します。サブツリーDNも、cn=configとcn=monitorの下のマッピング・ツリー・エントリ内に格納されます。
ACIの作成の詳細は、第6章「Directory Serverのアクセス制御」を参照してください。
ディレクトリ・サーバーのLDAPポートまたはLDAPSセキュア・ポートの番号を変更するには、DSCCを使用するかdsconf set-server-propコマンドを使用します。
ポート番号を変更する場合、次の点に注意してください。
他のユーザーがアクセスするマシンにDirectory Serverがインストールされている場合、特権のないポート番号を設定すると、ポートが公開され、他のアプリケーションに乗っ取られる危険にさらされる可能性があります。つまり、他のアプリケーションで同じアドレスとポートのペアにバインドすることが可能になります。この不法なアプリケーションが、Directory Server宛のリクエストを処理できてしまいます。つまり、不法なアプリケーションを使用し、認証処理に使用されるパスワードを横取りしたり、クライアントのリクエストまたはサーバーのレスポンスを変更したり、DoS攻撃を実行することが可能になります。このようなセキュリティ・リスクを回避するには、listen-addressまたはsecure-listen-addressプロパティを使用して、Directory Serverがリスニングするインタフェース(アドレス)を指定します。
コマンドラインを使用してポート番号を変更する場合、次の点に注意してください。
他のサーバーで定義されているレプリケートション許諾でDirectory Serverが参照される場合、新しいポート番号を使用するようにそのレプリケーション許諾を更新する必要があります。
以前にDSCCを使用してサーバーを管理したことがある場合、ポート番号の変更後、一時的にサーバーを表示できなくなります。サーバーを再度見られるようにするには、サーバーの登録を解除してから、新しいポート番号を使用してDSCCでそのサーバーを再登録する必要があります。
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
|
注意: 変更を行ったら、その変更を有効にするためにサーバーを再起動する必要があります。 |
ポートの既存の設定を検証します。
$ dsconf get-server-prop -h host -p port port-type
ここで、port-typeは次のいずれかです。
ldap-portLDAPデフォルト・ポート
ldap-secure-portLDAPSセキュア・ポート
dsml-portDSMLデフォルト・ポート
dsml-secure-portDSMLセキュア・ポート
たとえば、LDAPSセキュアポートを表示するには、次のように入力します。
$ dsconf get-server-prop -h host1 -p 2501 ldap-secure-port
Enter "cn=Directory Manager" password:
ldap-secure-port : 2511
返された結果が整数の場合、ポートは有効です。返された結果がdisabledの場合、ポートは無効です。
|
注意:
|
必要に応じて、ポート番号を変更するか、ポートを有効にします。
$ dsconf set-server-prop -h host -p port port-type:new-port
たとえば、LDAPポート番号を1389から1390に変更するには、次のコマンドを使用します。
$ dsconf set-server-prop -h host1 -p 1389 ldap-port:1390
ポート番号2250上でDSMLセキュア・ポートを有効にするには、次のコマンドを使用します。
$ dsconf set-server-prop -h host1 -p 1389 dsml-secure-port:2250
必要に応じて、ポートを無効にします。
$ dsconf set-server-prop -h host -p port port-type:disabled
たとえば、DSMLセキュア・ポートを無効にするには、次のコマンドを使用します。
$ dsconf set-server-prop -h host1 -p 1389 dsml-secure-port:disabled
Directory Serverは、LDAP(Lightweight Directory Access Protocol)のリクエストを処理するほかに、DSMLv2(Directory Service Markup Language version 2)で送信されたリクエストにも応答します。DSMLでも、クライアントでディレクトリ操作をエンコードできます。サーバーはDSMLを、同じアクセス制御とセキュリティ機能のすべてを持つ他のリクエストとして処理します。DSML処理により、他の多くのタイプのクライアントがディレクトリの内容にアクセスできます。
Directory Serverでは、ハイパーテキスト転送プロトコル(HTTP/1.1)でDSMLv2を使用できます。また、DSMLの内容を転送するためのプログラミング・プロトコルとしてSOAP(Simple Object Access Protocol)version 1.1が使用されます。これらのプロトコルの詳細およびDSMLリクエストの例については、Oracle Directory Server Enterprise Editionのリファレンスの第13章のDirectory Server DSMLv2に関する章を参照してください。
この項の内容は次のとおりです。
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
DSMLモードをonに設定します。
$ dsconf set-server-prop -h host -p port dsml-enabled:on
セキュアDSMLポートを設定します。
$ dsconf set-server-prop -h host -p port dsml-secure-port:port
セキュアでないDSMLポートを設定します。
$ dsconf set-server-prop -h host -p port dsml-port:port
デフォルトでは、このポートはdisabledに設定されています。
サーバーを再起動します。
$ dsadm restart instance-path
次の手順
ユーザーによって定義されたパラメータと属性値に従い、DSMLクライアントは次のURLを使用して、このサーバーにリクエストを送信できます。
http://host:DSML-port/relative-URL
https://host:secure-DSML-port/relative-URL
|
注意: relative-URLは、 |
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
DSMLモードをoffに設定します。
$ dsconf set-server-prop -h host -p port dsml-enabled:off
セキュアDSMLポートをdisabledに設定します。
$ dsconf set-server-prop -h host -p port dsml-secure-port:disabled
サーバーを再起動します。
$ dsasm restart instance-path
DSMLリクエストの受取りに必要なセキュリティのレベルを構成できます。そのためには、DSMLクライアント認証を構成する必要があります。
DSMLクライアント認証モードを設定します。
$ dsconf set-server-prop -h host -p port dsml-client-auth-mode:dsml-mode
デフォルトでは、dsml-client-auth-modeプロパティはclient-cert-firstに設定されています。
dsml-modeは、次のいずれかに指定できます。
http-basic-only - これがデフォルト値です。サーバーは、HTTP認証ヘッダーの内容を使用して、ディレクトリのエントリにマップできるユーザー名を検索します。この処理とその構成は、SSLを介して暗号化されますが、クライアント証明書は使用しないでください。これについては、「DSMLアイデンティティ・マッピング」に説明があります。
client-cert-only - サーバーはクライアント証明書の資格証明を使用してクライアントを特定します。この値によって、すべてのDSMLクライアントはセキュアなHTTPSポートを使用してDSMLリクエストを送信し、証明書を提示する必要があります。サーバーは、クライアント証明書がディレクトリ内のエントリと一致するかどうかをチェックします。詳細は、第5章「Directory Serverのセキュリティ」を参照してください。
client-cert-first - クライアント証明書が提示された場合、サーバーはまずその証明書を使用してクライアントの認証を試みます。クライアント証明書が提示されていないと、サーバーはAuthorizationヘッダーのコンテンツを使用してクライアントを認証します。
HTTPリクエストで証明書もAuthorizationヘッダーも提示されていない場合は、サーバーは匿名バインドを使用してDSMLリクエストを実行します。匿名バインドは、次の場合にも使用されます。
client-cert-onlyが指定されており、クライアントが有効なAuthorizationヘッダーを提示しているが、証明書がない場合。
http-basic-onlyが指定されており、クライアントが有効な証明書を提示しているが、Authorizationヘッダーがない場合。
クライアント認証方式にかかわらず、証明書が提示されているがそれがエントリと一致しない場合、またはHTTP認可ヘッダーが指定されているがそれがユーザー・エントリにマップできない場合、DSMLリクエストは拒否され、エラー・メッセージ403: Forbiddenが返されます。
証明書を使用しない基本認証を実行すると、Directory ServerはDSMLリクエストを受信するときに、アイデンティティ・マッピングと呼ばれるメカニズムにより、使用するバインドDNを決定します。このメカニズムでは、HTTPリクエストのAuthorizationヘッダーから情報を抽出して、バインドに使用するアイデンティティを特定します。
DSML/HTTPのデフォルトのアイデンティティ・マッピングは、サーバー構成の次のエントリで指定されます。
dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people
dsSearchFilter: (uid=${Authorization})
この構成は、サーバーがDirectory Server接尾辞に格納されるDNのuid値としてHTTPユーザーIDを使用することを示します。たとえば、HTTPユーザーがbjensenの場合、サーバーは、DN uid=bjensen,ou=peopleを使用してバインドを実行しようとします。
マッピングが正しく機能するためには、dsSearchBaseDNの値をすべて入力する必要があります。たとえば、dsSearchBaseDNの値をou=people,dc=example,dc=comに変更できます。すると、HTTPユーザーがbjensenの場合、サーバーはDN uid=bjensen,ou=people,dc=example,dc=comを使用してバインドを実行しようとします。
dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people,dc=example,dc=com
dsSearchFilter: (uid=${Authorization})
マッピング・エントリ属性dsSearchFilterの中で、${header}という形式のプレースホルダを使用できます。headerは、HTTPヘッダー名を表します。
次に、DSMLマッピングで使用される最も一般的なヘッダーを示します。
${Authorization}この文字列は、HTTP Authorizationヘッダーに含まれるユーザー名に置き換えられます。Authorizationヘッダーには、ユーザー名とそのパスワードが含まれますが、このプレースホルダではユーザー名のみが置き換えられます。
${From}この文字列は、HTTP Fromヘッダーに含まれる電子メール・アドレスに置き換えられます。
${host}この文字列は、DSMLリクエストのURL内のホスト名とポート番号(サーバーのホスト名とポート番号)に置き換えられます。
DSMLリクエストで別の種類のアイデンティティ・マッピングを実行するには、HTTPヘッダーのアイデンティティ・マッピングを新しく定義します。
デフォルトのDSML-over-HTTPアイデンティティ・マッピングを編集するか、このプロトコルのカスタム・マッピングを作成します。
マッピング・エントリは、エントリcn=HTTP-BASIC,cn=identity mapping,cn=configの下に配置する必要があります。
ldapmodifyコマンドを使用して、コマンドラインからこのエントリを追加します。詳細は、第3.1.3.1項「ldapmodifyを使用したエントリの追加」を参照してください。
Directory Serverを再起動して、新しいマッピングを有効にします。
最初に、カスタム・マッピングが評価されます。カスタム・マッピングが成功しなかった場合、デフォルト・マッピングが評価されます。すべてのマッピングでDSMLリクエストのバインドDNの特定に失敗した場合、DSMLリクエストは禁止されて拒否されます(エラー403)。
ディレクトリ内の各接尾辞は、単独で読取り専用モードにできます。また、特定のリフェラルが定義されていれば、それを返すことができます。また、Directory Serverは、すべての接尾辞に適用されるサーバーに読取り専用モードを指定し、グローバル・リフェラルが定義されている場合は、それを返すことができます。
サーバーの読取り専用モードは、接尾辞の索引の作成しなおしなどのタスクを実行する際に、管理者がディレクトリの内容を変更しないようにするために使用します。そのため、サーバーの読取り専用モードは、次の構成ブランチには適用されません。
cn=config
cn=monitor
cn=schema
これらのブランチは、読取り専用設定に関係なく、管理者以外のユーザーに変更されないように、アクセス制御命令(ACI)によって常に保護する必要があります(第6章「Directory Serverのアクセス制御」を参照)。グローバル読取り専用モードを設定すると、ディレクトリ・マネージャで開始された更新処理を含む、ディレクトリ内のその他すべての接尾辞に対する更新処理ができなくなります。
読取り専用モードでは、このモードが適用されている接尾辞についてはレプリケーションも中断されます。レプリケーションの対象となる変更がマスター・レプリカに加えられることはなくなります。ただし、読取り専用モードが適用される前に加えられた変更は、引き続きレプリケートされます。コンシューマ・レプリカは、読取り専用モードが無効になるまで更新を受け取りません。マルチ・マスター・レプリケーション環境のマスターは、レプリケーションの対象となる変更が加えられることはなく、他のマスターから更新を受け取りません。
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
グローバル読取り専用モードを有効化します。
$ dsconf set-server-prop -h host -p port read-write-mode:read-only
準備ができたら、読取り専用モードを無効化します。
$ dsconf set-server-prop -h host -p port read-write-mode:read-write
この項では、様々なタイプのメモリーの管理について説明します。様々なタイプのキャッシュの説明と、キャッシュ・チューニングの詳細は、Oracle Directory Server Enterprise Editionのリファレンスの第8章のDirectory Serverのデータ・キャッシュに関する章を参照してください。
キャッシュを事前ロードすると、シャットダウン時にエントリがキャッシュに保存され、これらのエントリは起動時にロードされます。これによってサーバーは、すでにキャッシュに存在している、最近使用したエントリで起動できます。これに続くDirectory Serverの動作は、起動時のパフォーマンスではなく通常の操作パフォーマンスを反映します。キャッシュの事前ロードは、ベンチマークの実行時や最適と考えられる状態の測定や分析時など、再現性のある結果を求める際に有用です。
この機能が有効化されている場合、キャッシュを能動的に事前ロードする必要はありません。キャッシュを能動的に事前ロードすることによって、リソースが余計に消費されてキャッシュの事前ロードの利点が失われます。
可能な場合は、キャッシュの事前ロードを能動的に行わずに、Directory Serverを使用して通常の、または一般的なクライアント対話によってキャッシュの事前ロードを実行してからパフォーマンスを測定してください。
エントリ・キャッシュの事前ロードを有効にするには、次のコマンドを実行します。
$ dsconf set-suffix-prop -p port suffix-dn entry-cache-preload-enabled:on
|
注意: 事前ロードされたデータの読取りおよび書込みが完了するのは、Directory Serverが適切に起動および停止される場合のみです。オフラインのタスクでは、キャッシュの内容は考慮されません。クラッシュによっても、キャッシュの事前ロードが無効化されます。 また、データの事前ロードの情報は、これらの条件では保存されません。
|
エントリ・キャッシュに関する詳細は、Oracle Directory Server Enterprise Editionのリファレンスを参照してください。
|
注意: キャッシュを変更すると、サーバーのパフォーマンスに重大な影響を与える可能性があります。キャッシュを変更する場合は十分に注意してください。 |
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
現在のデータベース・キャッシュ・レベルを取得します。
$ dsconf get-server-prop -h host -p port db-cache-size
データベース・キャッシュ・レベルを変更します。
$ dsconf set-server-prop -h host -p port db-cache-size:size
sizeは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表せます。マシンでサポートされるサイズを指定する必要があります。
インストール時のキャッシュのデフォルト・レベルはテスト環境に適したものであり、本番環境に適したものではありません。チューニング目的の場合は、サーバーのデータベース・キャッシュを監視することもできます。
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
データベース・キャッシュを監視するには、次を実行します。
$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \ -b "cn=monitor,cn=ldbm database,cn=plugins,cn=config" "(objectclass=*)"
データベース・キャッシュのサイズが十分に大きく、キャッシュの事前ロードが行われた場合は、ヒット率(dbcachehitratio)は高くなります。読み取られたページ数(dbcachepagein)と書き込まれたページ数(dbcacheroevict)は少なくなります。ヒット率の高低は、デプロイメントの制約に対して相対的に高いか低いかを意味します。
チューニング目的で、1つまたは複数の接尾辞のエントリ・キャッシュをチェックできます。エントリ・キャッシュ・レベルを表示するには、この手順を使用します。
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
エントリ・キャッシュを監視するには、次を実行します。
$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \ -b "cn=monitor,cn=db-name,cn=ldbm database,cn=plugins,cn=config" "(objectclass=*)"
接尾辞のエントリ・キャッシュが大部分のエントリを保持できるほど十分に大きい場合にキャッシュの事前ロードが行われていると、ヒット率(entrycachehitratio)は高くなります。
キャッシュを事前ロードすると、以前に空だったエントリ・キャッシュが満たされ、エントリ・キャッシュ・サイズ(currententrycachesize)がエントリ・キャッシュの最大サイズ(maxentrycachesize)近くになっていることがわかります。エントリ内のサイズ(currententrycachecount)は、接尾辞内のエントリの総数(ldapentrycachecount)と等しいか近い値が理想的です。
デフォルトでは負荷に応じて、エントリ・キャッシュはサーバーによって完全に管理されています。エントリ・キャッシュの設定を変更する前に、サーバーがデフォルト値でどのように動作するかを評価したい場合があります。チューニングの推奨事項については、Oracle Directory Server Enterprise Editionのリファレンスおよび『Oracle Fusion Middleware Oracle Directory Server Enterprise Editionデプロイメント・プランニング・ガイド』を参照してください。
|
注意: キャッシュを変更すると、サーバーのパフォーマンスに重大な影響を与える可能性があります。キャッシュを変更する場合は十分に注意してください。 |
デフォルトでは、entry-cache-modeのプロパティはautomaticに設定されています。これによってサーバー・キャッシュは、サーバー・ロードに基づいて自動的に管理されることが可能です。エントリ・キャッシュを変更する前に、このプロパティをmanualに設定する必要があります。
entry-cache-modeプロパティをmanualに設定します。
$ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-mode:manual
現在のエントリ・キャッシュ・レベルを取得します。
$ dsconf get-suffix-prop -h host -p port suffix-DN entry-cache-count entry-cache-size
キャッシュのエントリ数を変更します。
$ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-count:integer
integerは、キャッシュに格納されるエントリの数です。
キャッシュのエントリ・サイズを変更します。
$ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-size:size
sizeは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表されるキャッシュ・サイズです。マシンでサポートされるサイズを指定する必要があります。
entry-cache-sizeまたはentry-cache-countのどちらか先に達した方で、キャッシュが一杯であると判断します。
動的メモリーのフットプリントのしきい値を設定できます。このしきい値は、リソースが共有されているか点在している状態であるマシン上でDirectory Serverが実行中の場合に設定することもできます。
メモリーのサイズ設定の詳細は、『Oracle Fusion Middleware Oracle Directory Server Enterprise Editionデプロイメント・プランニング・ガイド』のDirectory Serverとメモリーに関する項を参照してください。
このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。
|
注意: このしきい値は、SolarisおよびLinuxプラットフォームのみに設定できます。 |
|
注意: デフォルトでは、 |
最大ヒープの高メモリーしきい値を設定します。
$ dsconf set-server-prop -h host -p port heap-high-threshold-size:value
valueは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表されるメモリー・サイズ、あるいはundefinedです。マシンでサポートされるサイズを指定する必要があります。
heap-high-threshold-sizeに使用する値に関する推奨事項は、serverについての説明のマニュアル・ページを参照してください。
オプションで、最大ヒープの低メモリーしきい値を設定します。
$ dsconf set-server-prop -h host -p port heap-low-threshold-size:value
valueは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表されるメモリー・サイズ、あるいはundefinedです。マシンでサポートされるサイズを指定する必要があります。
heap-low-threshold-sizeに使用する値に関する推奨事項は、serverについての説明のマニュアル・ページを参照してください。
各クライアント・アカウントに対する、サーバー上の検索操作のリソース制限を制御できます。このような制限をアカウントの操作属性に設定すると、それらの制限は、クライアントがディレクトリへのバインドに使用するアカウントに基づいて、Directory Serverで実施されます。
設定できる制限は次のとおりです。
検索制限は、検索操作で調べるエントリの最大数を指定する。
サイズ制限は、検索操作に応答して返されるエントリの最大数を指定する。
時間制限は、検索操作に費やせる最大時間を指定する。
アイドル・タイムアウトは、接続が切断されるまでに、クライアント接続がアイドル状態でいられる最大時間を指定する。
|
注意: デフォルトでは、ディレクトリ・マネージャは無制限にリソースを利用できます。 |
特定のユーザー・アカウントに対して設定したリソース制限は、サーバー規模の構成で設定したリソース制限より優先されます。この項では、各アカウントに対するリソース制限の設定について説明します。
この項で示す例では、エントリの属性に直接リソース制限を設定します。また、サービス・クラス(CoS)メカニズムを使用してアカウントにリソース制限を設定することもできます。クライアント・アプリケーション用にエントリが取得されるとき、CoSメカニズムによって算出属性が生成されます。CoSの定義の詳細は、第9.1項「グループ、ロールおよびサービス・クラスについて」を参照してください。
nsslapdプロセスで使用される検索制限を定義する場合、次の手順を参照してください。
WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。
dsconf get-server-propコマンドを使用して、リソース制限サーバー・プロパティを読み取ります。
$ dsconf get-server-prop -hhost-pportlook-through-limit search-size-limit \ search-time-limit idle-timeout look-through-limit : 5000 search-size-limit : 2000 search-time-limit : 3600 idle-timeout : none
この出力は、検索により最大5000エントリが調べられ、最大2000エントリが返され、検索の処理にはサーバーの時間で最大1時間(3600秒)が費やされることを示しています。
検索制限を変更します。
$ dsconf set-server-prop -h host -p port look-through-limit:integer
integerは、検索操作で調べるエントリの最大数です。
検索サイズ制限を変更します。
$ dsconf set-server-prop -h host -p port search-size-limit:integer
integerは、検索操作で返されるエントリの最大数です。
検索時間制限を変更します。
$ dsconf set-server-prop -h host -p port search-time-limit:integer
integerは、検索操作に費やせる最大時間です。
アイドル・タイムアウトを変更します。
$ dsconf set-server-prop -h host -p port idle-timeout:integer
integerは、接続が切断されるまでに、クライアント接続がアイドル状態でいられる最大時間を指定します。