本章說明如何配置目錄伺服器。您可以使用 dsconf 指令 (請參閱 dsconf(1M) 線上手冊)。
您也可以使用目錄服務控制中心 (DSCC),此方法較多人使用。 DSCC 會在配置程序中做進一步的檢查,以儘可能降低錯誤。此外,DSCC 也可讓您將某個伺服器實例的配置複製到另一個伺服器實例上。如需有關使用 DSCC 的更多資訊,請參閱 DSCC 線上說明。
若要顯示目錄伺服器實例的配置,請執行 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 Suffixes : suffix-DN Dest. Servers : host:port On-Going Tasks : import Finished Tasks : backup |
以上輸出假設您已建立尾碼以及與目標伺服器的複寫協議。它也會顯示進行中的匯入作業與已完成的備份作業。
修改配置的建議方法為使用 DSCC。此瀏覽器介面提供了作業型控制,可協助您快速而有效地設定配置。使用 DSCC 可讓您修改某部伺服器的配置設定,並將其複製到其他伺服器上。此外,DSCC 介面亦可為您管理配置的複雜性與相互依賴性。如需以 DSCC 修改配置的詳細程序,請參閱 DSCC 線上說明。
您可以撰寫採用指令行工具的程序檔,將配置作業自動化。
在指令行上使用 dsconf 指令修改配置。此指令會使用 LDAP 修改 cn=config 子樹狀結構。如需有關 dsconf 的更多資訊,請參閱目錄伺服器指令行工具。
對於無法以 dsconf 執行的作業,請改用 ldapmodify 指令。
若要使用 dsconf set-server-prop 指令修改伺服器配置特性,您必須了解所能修改的特性及其預設值。使用下列指令可顯示所有特性的說明:
$ dsconf help-properties -v |
搜尋所需項目的特性說明。以 UNIX 平台為例,鍵入下列內容即可搜尋記憶體快取特性:
$ dsconf help-properties -v | grep cache |
如需有關 cn=config 中配置項目的更多資訊,以及所有配置項目與屬性的完整描述 (包含所允許值的範圍),請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」。
目錄伺服器會將其所有配置資訊儲存於此檔案:
instance-path/config/dse.ldif
直接編輯 dse.ldif 檔案內容以修改配置的做法很容易造成錯誤,不建議使用。但若您選擇手動編輯此檔案,請在編輯檔案前先停止伺服器,再於編輯完成後重新啟動。
dse.ldif 檔案使用 LDAP 資料互換格式 (LDIF)。LDIF 以文字表示項目、屬性及其值,並且是 RFC 2849 (http://www.ietf.org/rfc/rfc2849) 中所述的標準格式。
dse.ldif 檔案中的目錄伺服器配置由下列項目構成:
cn=config 項目的屬性與值。
在子樹狀結構中位於 cn=config 下的所有項目及其屬性與值。
根項目 ("") 與 cn=monitor 項目的物件類別與存取控制指令。這些項目的其他屬性會由伺服器產生。
只有具有目錄伺服器實例的系統使用者有權讀取及寫入檔案。
目錄伺服器可透過 LDAP 讓所有配置設定成為可讀寫的內容。依預設,具有授權的任何人皆可讀取目錄的 cn=config 分支,但只有「目錄管理員」(cn=Directory Manager) 與 cn=Administrators,cn=config 下的管理使用者可對其進行寫入。管理使用者可檢視及修改配置項目,與任何其他目錄項目並無二致。
請勿於 cn=config 項目下建立非配置項目,因為這些項目將儲存在 dse.ldif 檔案中,而此檔案並非像一般項目一樣屬於可延伸性高的資料庫。因此,如果 cn=config 下儲存了許多項目 (特別是可能經常更新的項目),則效能可能降低。但若將「複寫管理員」(供應者連結 DN) 項目等特殊的使用者項目儲存在 cn=config 下,將可能有助於配置資訊的集中化。
目錄伺服器含有預設管理使用者、「目錄管理員」與 cn=admin,cn=Administrators,cn=config 使用者。這兩種使用者具有相同的存取權限,但 cn=admin,cn=Administrators,cn=config 須受 ACI 支配。
本節說明如何建立具有超級使用者存取權的管理使用者,以及如何配置「目錄管理員」。
若要建立與 cn=admin,cn=Administrators,cn=config 具有相同權限的新管理使用者,請在 cn=Administrators,cn=config 群組中建立新的使用者。此群組中的所有使用者均須受全域 ACI 支配,該全域 ACI 可允許與「目錄管理員」相同之存取權限。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。
建立新的管理使用者。
例如,若要建立新的使用者 cn=Admin24,cn=Administrators,cn=config,請鍵入:
$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - dn: cn=admin24,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 -h host -p port root-dn root-dn:cn=Directory Manager |
在必要時修改「目錄管理員」設定。
若要修改目錄管理員 DN,請鍵入:
$ dsconf set-server-prop -h host -p port root-pwd-file:new-root-dn-password-file |
若目錄管理員 DN 中有空格,請使用引號。例如:
$ dsconf set-server-prop -h host1 -p 1389 root-dn:"cn=New Directory Manager" |
若要變更目錄管理員密碼,請鍵入:
$ dsconf set-server-prop -h host -p port root-pwd:new-root-dn-password |
若因安全性考量而不以指令行引數的形式傳送純文字密碼,請建立用以設定密碼的暫存檔。
$ echo password > /tmp/pwd.txt |
此檔案只能讀取一次,您必須儲存密碼以供日後使用。設定伺服器根密碼檔案特性。
$ dsconf set-server-prop -h host -p port root-pwd-file:/tmp/pwd.txt |
此指令會提示伺服器讀取密碼檔案。設定密碼檔案特性後,請移除暫存密碼檔案。
$ rm /tmp/pwd.txt |
根目錄伺服器項目 (以零長度 DN "" 進行基底物件搜尋所傳回的項目) 與 cn=config、cn=monitor 及 cn=schema 下的子樹狀結構,含有「目錄伺服器」自動產生的存取控制指令 (ACI)。這些 ACI 可用以決定目錄項目的使用者權限。這些 ACI 足夠評估作業之用。但運用在生產環境部署時,就必須評估您的存取控制需求,並設計您自己的存取控制。
若您基於安全性考量而要隱藏一或多個其他子樹狀結構的存在,並保護您的配置資訊,您必須將其他 ACI 置於 DIT 上。
將 ACI 屬性放置於您所要隱藏之子樹狀結構基底上的項目中。
將 ACI 放置於 namingContexts 屬性的根 DSE 項目中。名為 namingContexts 的根 DSE 項目屬性,含有各個目錄伺服器資料庫的基底 DN 清單。
將 ACI 置於 cn=config 與 cn=monitor 子樹狀結構中。子樹狀結構 DN 也會儲存在 cn=config 與 cn=monitor 下的對映樹狀結構項目中。
如需有關建立 ACI 的更多資訊,請參閱第 6 章, 目錄伺服器存取控制。
本節提供下列有關配置 DSCC 的資訊:
預設的 Common Agent Container 連接埠號為 11162。Common Agent Container 會將 DSCC 代理程式連接埠定義為 jmxmp-connector-port。若基於管理原因,DSCC 代理程式與 Common Agent Container 必須使用不同的連接埠號,請使用下列程序。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。
以超級使用者的身份,驗證 jmxmp-connector-port 現有的連接埠號。
$ su Password: # cacaoadm list-params ... jmxmp-connector-port=11162 ... |
變更 DSCC 代理程式連接埠號。
變更 DSCC 代理程式連接埠號時,必須停止 Common Agent Container。
# cacaoadm stop # cacaoadm set-param jmxmp-connector-port=new-port # cacaoadm start |
如需此指令的位置,請參閱指令位置。
在 DSCC 中取消註冊您的伺服器,然後使用新的 DSCC 代理程式連接埠號予以重新註冊。
此外,當您建立新的伺服器時,您必須指定非預設的 DSCC 代理程式連接埠號。
若要重設目錄服務管理員密碼,請依本程序中所述使用 DSCC。
如存取 DSCC中所述存取 DSCC。
按一下 [設定] 標籤,然後選擇 [目錄服務管理員]。
按一下要變更密碼的「目錄服務管理員」名稱。
在特性畫面中,輸入新的密碼。
在 [確認密碼] 欄位中再次鍵入新密碼,以進行確認。按一下 [確定] 以儲存變更。
經過一段時間後,您的 DSCC 階段作業將會逾時,並將您登出 DSCC。使用此程序可延伸逾時延遲。請注意,此程序可延伸 DSCC 的逾時以及 Sun Java Web Console 中所有其他應用程式的逾時。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。
# wcadmin add -p -a ROOT session.timeout.value=mm |
其中 mm 是逾時之前的時間,以分鐘數計算。
例如,若要將逾時設為兩小時,請鍵入:
$ su Password: # wcadmin add -p -a ROOT session.timeout.value=120 Set 1 properties for the ROOT application. # wcadmin list -p Shared service properties (name, value): session.timeout.value 120 ... |
重新啟動 Sun Java Web Console。
# smcwebserver restart Shutting down Sun Java(TM) Web Console Version 3.0.2 ... Starting Sun Java(TM) Web Console Version 3.0.2 ... The console is running. |
如需這些指令的位置,請參閱指令位置。
DSCC 會顯示您已在 DSCC 中註冊的伺服器。
若先前安裝 DSCC 的機器故障,您可以改在其他機器上安裝 DSCC,然後重新註冊伺服器。但這麼做可能很花時間。若想要透過 DSCC 立即存取伺服器,您可以配置 DSCC 容錯移轉。
若要配置 DSCC 容錯移轉,請考量下列注意事項:
已註冊之伺服器的所有資訊,均儲存於 DSCC 登錄中。此登錄為目錄伺服器實例。您可以使用管理指令 dsadm 與 dsconf 管理登錄。
DSCC 登錄具有下列預設特質:
Solaris — /var/opt/SUNWdsee/dscc6/dcc/ads
Linux 與 HP-UX — /var/opt/sun/dscc6/dcc/ads
Windows — C:\Program Files\Sun\DSEE\var\dscc6\dcc\ads
cn=dscc
LDAP 3998、LDAPS 3999
在兩部或更多機器上安裝 DSCC 後,即可設定 DSCC 登錄尾碼間的複寫。請依第 10 章, 目錄伺服器複寫中所述,使用複寫指令行程序。此外,如需設定簡單複寫配置的範例,請參閱 dsconf(1M) 線上手冊。
設定複寫後,您即可從不同的機器存取在 DSCC 中註冊的相同伺服器。例如,若您設定了host1 與 host2 上不同 DSCC 登錄尾碼間的複寫,您即可在 https://host1:6789 或 https://host2:6789 上使用 DSCC 管理相同的伺服器。而在主機故障時,將可從其他主機存取 DSCC。
如需有關 DSCC 的疑難排解資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Installation Guide」中的「To Troubleshoot Directory Service Control Center Access」。
您可以使用 DSCC 或使用 dsconf set-server-prop 指令,修改使用者目錄伺服器的 LDAP 連接埠號或 LDAPS 安全連接埠號。
若變更了連接埠號,請注意下列事項:
若設定了非專用連接埠號,且目錄伺服器安裝在其他使用者可存取的機器上,該連接埠即有可能因其他應用程式曝露於被劫持的風險下。換言之,其他應用程式可連結至相同的位址/連接埠對。此惡意應用程式可能會接著處理原本以目錄伺服器為目標的請求。也就是說,惡意應用程式可用以擷取認證程序中所使用的密碼,以變更用戶端請求或伺服器回應,或產生阻絕服務攻擊。若要避免此安全性風險,請使用 listen-address 或 secure-listen-address 特性來指定目錄伺服器偵聽所在的介面 (位址)。
若您使用指令行變更了連接埠號,請注意下列事項:
若定義於其他伺服器上的複寫協議中參照了目錄伺服器,複寫協議即必須進行更新以使用新的連接埠號。
若您先前使用 DSCC 管理伺服器,則在變更連接埠號後,將暫時無法檢視伺服器。若要再次檢視伺服器,必須取消註冊伺服器,然後使用新的連接埠號在 DSCC 中予以重新註冊。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
完成修改之後必須重新啟動伺服器,變更才會生效。
驗證連接埠現有的設定。
$ dsconf get-server-prop -h host -p port port-type |
其中 port-type 為下列其中一項:
LDAP 預設連接埠
LDAPS 安全連接埠
DSML 預設連接埠
DSML 安全連接埠
例如,若要顯示 LDAPS 安全連接埠,請鍵入:
$ dsconf get-server-prop -h host1 -p 2501 ldap-secure-port Enter "cn=Directory Manager" password: ldap-secure-port : 2511 |
若傳回的結果為整數,表示連接埠已啟用。若傳回的結果為 disabled,表示連接埠已停用。
您也可以使用 dsadm 列出 LDAP 預設連接埠與 LDAPS 安全連接埠。
必要時,請修改連接埠號或啟用連接埠。
$ 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 |
除了以「簡易目錄存取協定 (LDAP)」處理請求以外,目錄伺服器也會回應以目錄服務標記語言版本 2 (DSMLv2) 傳送的請求。DSML 是另一個可供用戶端編碼目錄作業的方法。伺服器處理 DSML 就像處理任何其他請求一般,所使用之存取控制與安全性功能均相同。DSML 處理允許其他多種用戶端類型存取您的目錄內容。
目錄伺服器支援透過超文字傳輸協定 (HTTP/1.1) 使用 DSMLv2,而在傳輸 DSML 內容時,會使用簡易物件存取協定 (SOAP) 1.1 版做為程式設計協定。如需有關這些協定的更多資訊以及 DSML 請求的範例,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的第 10 章「Directory Server DSMLv2」。
本節包含下列主題:
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 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
您可以使用 dsml-relative-root-url 特性讀取與設定 relative-URL。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 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 章, 目錄伺服器安全性。
client-cert-first - 伺服器會嘗試先以用戶端憑證 (若有的話) 進行用戶端認證。否則,伺服器將會使用「授權」標頭的內容進行用戶端認證。
若 HTTP 請求未提供任何憑證與「授權」標頭,伺服器即會以匿名連結執行 DSML 請求。下列情況也會使用匿名連結:
在指定 client-cert-only 時,用戶端提供了有效的「授權」標頭,但不具憑證。
在指定 http-basic-only 時,用戶端提供了有效的憑證,但不具「授權」標頭。
無論用戶端認證方法為何,若已提供憑證,但不符合項目,或已指定「HTTP 授權」標頭,但此標頭無法對映至使用者項目,DSML 請求即會遭拒絕,並產生錯誤訊息 403:「禁止」。
執行不具憑證的基本認證時,目錄伺服器會使用名為身份識別對映的機制,判斷在接受 DSML 請求時所應使用的連結 DN。此機制會從 HTTP 請求的「授權」標頭中擷取資訊,以判斷用以連結的身份識別。
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})
此配置表示伺服器應使用 HTTP 使用者 ID,做為目錄伺服器尾碼中所儲存之 DN 的 uid 值。例如,若 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 對映中最常使用的標頭。
此字串會由「HTTP 授權」標頭中所含的使用者名稱取代。授權標頭中含有使用者名稱及其密碼,但在此預留位置中只有使用者名稱會遭取代。
此字串會由「HTTP 寄件者」標頭中可能包含的電子郵件位址取代。
此字串會由 DSML 請求之 URL 的主機名稱與連接埠號取代,此亦即伺服器的主機名稱與連接埠號。
若要讓 DSML 請求執行不同類型的身份識別對映,請為 HTTP 標頭定義新的身份識別對映。
為此協定編輯預設 DSML-over-HTTP 身份識別對映,或建立自訂對映。
對映項目必須位於 cn=HTTP-BASIC,cn=identity mapping,cn=config 項目下。
在指令行上使用 ldapmodify 指令增加此項目,如使用 ldapmodify 增加項目中所述。
重新啟動目錄伺服器,使您的新對映生效。
自訂對映會先進行評估。若沒有成功的自訂對映,則會接著評估預設對映。若所有對映皆無法判斷 DSML 請求的連結 DN,即會禁止並拒絕 DSML 請求 (錯誤 403)。
您目錄中的每個尾碼均可單獨設為唯讀模式,並可傳回特定的參照 (若已定義)。目錄伺服器針對適用於所有尾碼同時可傳回全域參照的伺服器 (若已定義),也提供了唯讀模式。
設計伺服器唯讀模式的目的,是要讓管理員在執行重新編製尾碼索引之類的作業時,防止目錄內容遭到修改。因此,伺服器唯讀模式並不適用於下列配置分支:
cn=config
cn=monitor
cn=schema
無論唯讀設定為何,這些分支應始終受存取控制指令 (ACI) 的保護,以免遭到管理員以外的使用者修改 (請參閱第 6 章, 目錄伺服器存取控制)。全域唯讀模式可防止目錄中所有其他尾碼的更新作業,包括「目錄管理員」所初始化的更新作業在內。
唯讀模式啟用後,也會使尾碼的複寫作業中斷。主伺服器複本將不再有任何變更需複寫,即使它繼續複寫唯讀模式啟用前所做的任何變更,仍是如此。用戶複本必須等到唯讀模式停用後,才能接收更新。多重主伺服器複寫環境中的主伺服器不具任何需複寫的變更,且無法從其他主伺服器接收更新。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 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 |
本節提供管理不同記憶體類型的相關資訊。如需不同快取類型的描述以及有關快取調校的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」中的第 5 章「Directory Server Data Caching」。
填充快取是指將資料填入快取中,使後續的目錄伺服器運作方式反映出正常的作業效能,而不是不穩定的效能。在進行標準檢查時若產生可重複顯示的結果,以及在測量與分析可能的最佳化程度時,填充快取都有其效用。
請儘可能避免主動填充快取。在測量效能之前,請讓快取透過用戶端與目錄伺服器之間正常或一般的互動方式進行填充。
如需填充資料庫快取的工具,請至 http://www.slamd.com。
修改快取可能會嚴重影響伺服器效能。修改快取時請多加留意。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 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 可以 GB (G)、MB (M)、KB (k) 或位元組 (b) 表示。所指定的大小必須是受機器支援的大小。
安裝上的預設快取層級僅適用於測試環境,不適用於生產環境。進行微調時,您可以監視伺服器的資料庫快取。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 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) 應該都很低。此處的「高」與「低」是相對於部署限制的表示。
進行微調時,您可以檢查一或多個尾碼的項目快取。使用下列程序即可檢視項目快取層級。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 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)。
修改快取可能會嚴重影響伺服器效能。修改快取時請多加留意。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
取得目前的項目快取層級。
$ 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 是以 GB (G)、MB (M)、KB (k) 或位元組 (b) 表示的快取大小。所指定的大小必須是受機器支援的大小。
若要限制 nsslapd 程序所使用的堆疊記憶體數,您可以設定動態記憶體佔用空間的臨界值。當目錄伺服器執行於共用或分散資源的機器上時,您即可設定此臨界值。
此臨界值只能設定於 Solaris 與 Linux 平台上。
如需有關記憶體大小的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Deployment Planning Guide」中的「Directory Server and Memory」。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。
heap-high-threshold-size 與 heap-low-threshold-size 特性的預設值為 undefined。
設定堆疊記憶體高臨界值上限。
$ dsconf set-server-prop -h host -p port heap-high-threshold-size:value |
其中 value 是 undefined,或是以 GB (G)、MB (M)、KB (k) 或位元組 (b) 表示的記憶體大小。所指定的大小必須是受機器支援的大小。
如需有關 heap-high-threshold-size 適用值的建議,請參閱 server(5dsconf) 線上手冊。
您可以選擇是否設定堆疊記憶體低臨界值上限。
$ dsconf set-server-prop -h host -p port heap-low-threshold-size:value |
其中 value 是 undefined,或以 GB (G)、MB (M)、KB (k) 或位元組 (b) 表示的記憶體大小。所指定的大小必須是受機器支援的大小。
如需有關 heap-low-threshold-size 適用值的建議,請參閱 server(5dsconf) 線上手冊。
您可以控制每個用戶端帳戶在伺服器上的搜尋作業資源限制。您可以在帳號的作業屬性中設定此類限制,而讓目錄伺服器根據用戶端用以連結至目錄的帳號加以強制執行。
您可以設定下列限制:
查詢限制可指定一個搜尋作業所檢查的項目數上限。
大小限制可指定在回應搜尋作業時所傳回的項目數上限。
時間限制可指定用以處理搜尋作業的時間上限。
閒置逾時可指定用戶端連線遭捨棄之前處於閒置狀態的時間上限。
依預設,「目錄管理員」所能使用的資源數不受限制。
您對特定使用者帳號所設定的資源限制,優先於伺服器整體配置中所設定的資源限制。本節將就每個帳號的資源限制設定提供相關資訊。
本節中的範例會直接在項目的屬性中設定資源限制。您也可以使用「服務類別 (CoS)」機制,設定帳號的資源限制。為用戶端應用程式擷取項目時,CoS 機制即會產生運算屬性。如需有關定義 CoS 的更多資訊,請參閱服務類別。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
使用 dsconf get-server-prop 指令可讀取資源限制伺服器特性。
$ dsconf get-server-prop -h host -p port look-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 個項目,以及最多使用伺服器時間一小時 (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 serach-time-limit:integer |
其中 integer 是處理搜尋作業所耗費的最長時間。
變更閒置逾時。
$ dsconf set-server-prop -h host -p port idle-timeout:integer |
其中 integer 是用戶端連線中斷之前可維持閒置的最長時間。