本章說明為提昇 Communications Express 的效能所必須考量的資訊。
本節說明如何設定並配置 LDAP 池與設定 LDAP 連線,以改善 Communications Express 的效率。Communications Express 的某些元件必須連線到 LDAP 伺服器才能夠擷取並管理資訊。如果有大量的使用者登入,則必須花很長的時間才能建立連線以及從 LDAP 伺服器擷取資訊。如果已建立 LDAP 連線池且可供 Communications Express 使用,即可縮短建立連線並擷取資訊的週轉時間。
在一般的 Communications Express 生產環境中,會採用 LDAP 負載平衡和容錯移轉機制。在這種情形下,有一個 LDAP 伺服器 (稱為主伺服器) 負責擷取資訊,而其他的伺服器組 (稱為容錯移轉伺服器) 則作為備用,以防主伺服器故障。這樣一來,就可避免單點故障。
Communications Express 包含一個 LDAP 容錯移轉管理員模組,此模組負責從主伺服器或從屬伺服器擷取連線。每個負載平衡伺服器會維護可用的連線池。每當 Communications Express 元件需要連線到 LDAP 伺服器時,LDAP 容錯移轉管理員便會提供這個 LDAP 連線池的連線給該元件。
若要配置 Communications Express 以建立 LDAP 容錯移轉管理員,您必須先在 uwcauth.properties 檔案中設定幾個參數。
將目錄變更為 uwc-deploy-path /WEB-INF/config/。
編輯 uwcauth.properties 檔案並設定下列參數。
ldapusersession.ldapport : 將此參數設定為執行 LDAP 伺服器的連接埠。
ldapusersession.ldaphost: 將此參數設定為 LDAP 伺服器名稱的 LDAP 主機清單。此清單可以逗點分隔。如果 LDAP 伺服器是在非預設的連接埠上執行,即可以逗點分隔來指定。例如,host1, host2:1290, host3, host4:2546。此處的 host1 和 host3 是在預設的連接埠上執行,而 host2 和 host4 則是在非預設的連接埠上執行。
重新啟動已部署 Communications Express 的 Web 容器。
若在網路使用密集的生產環境中進行大量的資料傳輸,藉由啟用壓縮伺服器回應可增強效能。這樣一來,便能壓縮資料並透過網路傳送,進而加強效能。
若要啟用壓縮伺服器回應功能,您必須在 uwcconfig.properties 檔案中設定 uwc.gzip.compression 參數。
將 uwc.gzip compression 參數值設定為 true,以啟用 uwcconfig.properties 檔案中的壓縮伺服器回應功能。
例如,uwc.gzipcompression = true 並重新啟動已部署 Communications Express 的 Web 容器。
當使用者登入 Communications Express 時,便會在伺服器端為該使用者建立階段作業。階段作業包含各使用者的資料且在伺服器端維護。如果有大量的使用者同時登入,則可能需要更多資源來管理階段作業資料。將階段作業的 session-timeout 設定為最合適的值,並關閉已開啟卻未使用或有很長一段時間沒有使用的階段作業,即可增強效能。
若要自訂 Communications Express 的階段作業逾時,請編輯位於 uwc-deploy-dir/ WEB-INF 目錄中的 web.xml 檔案。 該 XML 檔案包含 XML 標記 session-config,其屬性為 session-timeout。這個屬性定義以分鐘為單位的階段作業逾時。將 session-timeout 屬性值變更為所需的值。
例如,下列範例定義 10 分鐘的階段作業逾時:
<session-config> <session-timeout>10</session-timeout> </session-config> |
這一節描述為增強效能,您可以對 Directory Server 執行的調校。
請務必確保使用者或群組 LDAP Directory Server 和通訊錄伺服器配置中的 nsSizeLimit 和 nsLookthroughLimit 參數值足夠大,以便順利完成搜尋。
若要確定這些參數是否已設定為適當的值,請輸入以下指令:
ldapsearch -b /base/ (&(icscalendarowned=*/user/*)(objectclass=icsCalendarUser))
其中
/base/ 是 Calendar Server 使用者與資源資料所在的 Directory Server 之 LDAP 基底 DN。
/user/ 是一般使用者可以在 [行事曆搜尋] 對話方塊中輸入的值,該對話方塊位於 Communications Express 中的 [訂閱] 選項下。
如果 nsSizeLimit 或 nsLookthroughLimit 參數不夠大,則 LDAP 伺服器將傳回錯誤。
按照下列規範重設 nsSizeLimit 或 nsLookthroughLimit 參數:
確定 nsSizeLimit 參數的值足夠大,以傳回所有需要的結果;否則,資料會被截斷,並且不會顯示任何結果。
確定 nsLookthroughLimit 參數值足夠大,以完成對 LDAP 目錄中所有使用者與資源的搜尋。如果可能,請將 nsLookthroughLimit 設定為 -1。這樣 nsLookthroughLimit 搜尋就不會有限制。
建議您分開設定 LDAP 中的使用者或群組和通訊錄項目。
若要增強 Web Server 的效能,請執行本節所述之步驟。
在 server.xml 中,將 <vs\> (虛擬伺服器) 元素中的 acceptorthreads 屬性值變更為託管 Web Server 之機器的 CPU 數目。
例如:
<VS id="https-siroe.com" connections="ls1" mime="mime1"aclids="acl1" urlhosts="<webserver hostname" acceptorthreads="<noofcpus\>" \> |
在 Web Server 的 server.xml 檔案中,增加或設定下列 JVM 選項。
<JVMOPTIONS>-Xms/JVMOPTIONS> (根據可用記憶體所訂的近似值)
<JVMOPTIONS>-Xmx /JVMOPTIONS> (根據可用記憶體所訂的近似值)
<JVMOPTIONS>—XX: NewSize = <1/3rd of the heap allocated></JVMOPTIONS>
<JVMOPTIONS>-XXMaxNewSize =<1/3 rd of the heap allocated></JVMOPTIONS>
第一個選項表示最大堆疊大小,而第二個選項表示最小堆疊大小
對於這兩個選項,建議您設定相同的值。
新增下列 JVM 選項
JVMOPTIONS -server /JVMOPTIONS
JVMOPTIONS-XX:+UseParNewGC/ JVMOPTIONS
JVMOPTIONS-XX:ParallelGCThreads= number-of-CPUs/JVMOPTIONS
JVMOPTIONS-XX:+UseConcMarkSweepGC/ JVMOPTIONS
這一節描述在 Calendar Server 的多個 CPU 之間使用負載平衡是如何增強效能的。
如果伺服器有多個 CPU,依預設,Calendar Server 會跨 CPU 分佈 HTTP 服務 (例如 cshttpd 程序) 與分散式資料庫服務 (例如 csdwpd 程序)。
ics.conf 中的 service.http.numprocesses 和 service.dwp.numprocesses 參數決定為每種服務執行的實際程序數目。依預設,在安裝期間,這些參數會設定為伺服器上的 CPU 數目,但您可以重設這些值。例如,如果伺服器有 8 個 CPU,但您希望 cshttpd 和 csdwpd 程序僅在 4 個 CPU 中執行,則應將參數設定為:
service.http.numprocesses="4"
service.dwp.numprocesses="4"
將 service.loadbalancing 參數增加到 ics.conf 檔案
將 service.loadbalancing 設定為「 no」。
重新啟動 Calendar Server 使變更生效。
如需負載平衡的相關資訊,請參閱「Sun Java System Calendar Server 6.3 Administration Guide」中的附錄 C「Calendar Server Configuration Worksheet」。