Sun Java System Calendar Server 管理指南 |
第 19 章
調校 Calender Server 效能若要提昇 Sun Java System Calendar Server 的效能,請考量以下選項:
為 LDAP 目錄伺服器建立索引若要提昇 Calendar Server 存取 LDAP 目錄伺服器時的效能,請為以下屬性增加索引至 LDAP 配置檔案。
- icsCalendar 屬性,用於為行事曆使用者或資源搜尋預設行事曆。請指定存在 (pres)、相等 (eq) 及子字串 (sub) 等索引類型。
- icsCalendarOwned,啟用 LDAP CLD Plug-in 時,用於搜尋訂閱作業。請指定存在 (pres)、相等 (eq) 及子字串 (sub) 等索引類型。另請參閱提昇 DWP 環境中的行事曆搜尋效能。
- mail 和 mailAlternateAddress,指定使用者的主要電子郵件位址與替代電子郵件位址。另請參閱必需的 mail 屬性與電子郵件別名 (mailalternateaddress 屬性)。
注意如果您執行 Directory Server 設定 (comm_dssetup.pl) 程序檔來配置 Directory Server 5.x,此程序檔會為 icsCalendar 與 icsCalendarOwned 屬性增加索引。
如需有關增加目錄伺服器索引的資訊,請參閱以下網站上的「Directory Server Configuration, Command, and File Reference」:
http://docs.sun.com/db/coll/S1_ipDirectoryServer_51
提昇 DWP 環境中的行事曆搜尋效能當您將行事曆資料庫置於多台後端伺服器上時,也就是說,當您處於 DWP 環境中時,搜尋行事曆會比較費時。先在 LDAP 項目中查找並直接找出行事曆常駐的 DWP 主機會較快。
若要讓行事曆搜尋先在 LDAP 目錄中查找,然後在行事曆資料庫中查找,請確定 ics.conf 檔案中的以下參數設定為預設值,如下所示﹕
service.calendarsearch.ldap = "yes"
如果您要啟用 LDAP 目錄的行事曆搜尋,可透過以下方法提昇搜尋效能:
為 icsCalendarOwned 屬性建立索引
若要確定是否可以提昇 LDAP 目錄伺服器的行事曆搜尋效能,請嘗試以下 LDAP 指令:
ldapsearch -b "base"
"(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"其中,base 是 Calendar Server 使用者資料和資源資料所在的目錄伺服器之 LDAP 基底 DN,user 是一般使用者可在 [Calendar Express 訂閱] -> [行事曆搜尋] 對話方塊中輸入的值。
測試表明,如果包含 60,000 個項目,在沒有為 icsCalendarOwned 建立索引的情況下,上述搜尋大約需要 50 到 55 秒鐘。而建立索引後,上述搜尋僅需大約 1 到 2 秒鐘。
在 Directory Server 上,使用以下 Solaris 作業系統指令為 icsCalendarOwned 屬性建立索引:
server5/bin/slapd db2index -D slapd-serverID
-t icsCalendarOwned:eq,pres,sub:2.16.840.1.113730.3.3.2.11.1其中 slapd-serverID 是 slapd-serverID 目錄的完整路徑。
設定 nsSizeLimit 與 nsLookthroughLimit 參數
LDAP 目錄伺服器配置中的 nsSizeLimit 與 nsLookthroughLimit 參數必須足夠大,以使搜尋能正確完成。
若要確定這些參數是否已設定為適當的值,請嘗試以下指令:
ldapsearch -b "base"
"(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"其中,base 是 Calendar Server 使用者資料和資源資料所在的目錄伺服器之 LDAP 基底 DN,user 是一般使用者可在 [Calendar Express 訂閱] -> [行事曆搜尋] 對話方塊中輸入的值。
如果 LDAP 伺服器傳回錯誤,可能是 nsSizeLimit 參數或 nsLookthroughLimit 參數的值不夠大。請按照下列指示設定這些參數:
啟用 CLD 快取記憶體選項
若要優化搜尋 LDAP,請依如下所示設定 CLD 快取記憶體選項 ("yes" 為預設)﹕
caldb.cld.cache.enable = yes
另請參閱使用 CLD 快取記憶體選項。
使用 LDAP 資料快取記憶體選項LDAP 資料快取記憶體選項可確保 LDAP 資料在提交後立即可用,即使 LDAP 目錄伺服器被配置為資料提交後延遲一段時間才可用。
例如,如果您的站點已部署主要/從屬 LDAP 配置,其中 Calendar Server 透過從屬 LDAP 目錄伺服器來存取主要 LDAP 目錄,而從屬 LDAP 目錄伺服器會使 LDAP 資料在提交後延遲一段時間才可用,則 LDAP 資料快取記憶體可確保您的 Calendar Server 用戶端擁有準確的 LDAP 資料。
本小節包含以下主題:
使用 LDAP 資料快取記憶體注意事項
請使用以下指示來確定您的站點是否應配置 LDAP 資料快取記憶體:
- 如果您站點上的 Calendar Server 可直接存取主要 (或根) LDAP 目錄伺服器,並且 LDAP 資料在提交後立即可用,則無需配置 LDAP 資料快取記憶體。請確保 local.ldap.cache.enable 參數設定為 "no" (預設)。
- 如果您的站點已部署主要/從屬 LDAP 配置,其中 Calendar Server 透過從屬 LDAP 目錄伺服器來存取主要 LDAP 目錄,而從屬 LDAP 目錄伺服器會使 LDAP 資料在提交後延遲一段時間才可用,請配置 LDAP 資料快取記憶體以確保您的一般使用者保持最新的資料。
主要/從屬 LDAP 配置
主要/從屬 LDAP 配置包括一個主要 (根) 目錄伺服器和一個或多個從屬 (消耗或複製) 目錄伺服器。Calendar Server 可直接或透過從屬目錄伺服器存取主要 LDAP 目錄伺服器:
在這第二種配置中,由於從屬目錄伺服器的 LDAP 資料在提交後要延遲一段時間才可用,因此 LDAP 資料不準確的問題可能發生。
例如,Calendar Server 提交一個 LDAP 資料變更,但由於主要目錄伺服器正在更新每台從屬目錄伺服器而造成延遲,新資料在特定的一段時間內不可用。隨後的 Calendar Server 用戶端作業就會使用舊的 LDAP 資料並呈現過期的檢視。
如果更新從屬目錄伺服器而造成的延遲很短暫 (僅幾秒鐘),用戶端可能不會遇到問題。但是,如果延遲較長 (幾分鐘或幾小時),在延遲期間,用戶端會顯示不準確的 LDAP 資料。
表格 19-1 列出受主要/從屬 LDAP 伺服器配置影響的 LDAP 屬性,在該配置中,Calendar Server 透過從屬 LDAP 目錄伺服器來存取主要 LDAP 目錄伺服器。
若要確保您的一般使用者保持最新的 LDAP 資料,請依以下各小節的說明配置 LDAP 資料快取記憶體:「LDAP 資料快取記憶體」和「LDAP 資料快取記憶體配置參數」。
LDAP 資料快取記憶體
LDAP 資料快取記憶體透過為 Calendar Server 用戶端提供最新的 LDAP 資料 (即使主要目錄伺服器尚未更新每台從屬目錄伺服器) 來解決主要/從屬 LDAP 配置問題。
如果啟用了 LDAP 資料快取記憶體,Calendar Server 會將已提交的 LDAP 資料寫入快取記憶體資料庫 (ldapcache.db 檔案) 中。依預設,LDAP 快取記憶體資料庫位於 cal_svr_base/var/opt/SUNWics5/csdb/ldap_cache 目錄中,如果願意,您可以配置其他位置。
當用戶端變更單一使用者的 LDAP 資料時,Calendar Server 會將修訂過的資料寫入 LDAP 快取記憶體資料庫 (以及從屬目錄伺服器) 中。隨後的用戶端作業會從快取記憶體資料庫中擷取 LDAP 資料。對於單一使用者,此資料擷取適用於以下作業:
因此,LDAP 資料快取記憶體資料庫提供:
- 單一系統上各程序間的資料一致性 - 該資料庫適用於多處理器系統上的所有 Calendar Server 程序。
- 各使用者階段作業間的資料持續性 - 該資料庫是永久的,且無需更新。您可以配置 LDAP 資料快取記憶體項目的有效時間 (TTL) 和各資料庫清除作業間的間隔時間。請參閱「LDAP 資料快取記憶體配置參數」,以取得更多資訊。
限制
LDAP 資料快取記憶體不提供:
LDAP 資料快取記憶體配置參數
表格 19-2 說明 ics.conf 檔案中 LDAP 資料快取記憶體的配置參數。
小心 如果 Calendar Server 或執行 Calendar Server 的伺服器未正確關閉,請手動刪除 ldap_cache 目錄下的所有檔案,以避免可能導致在以後重新啟動中發生問題的資料庫毀壞。
使用 CLD 快取記憶體選項如果您要使用 CLD Plug-in,請確定 ics.conf 中的以下配置參數都設定為 "yes" (即每個參數的預設值):
caldb.cld.cache.enable = "yes"
該參數啟用 CLD 快取記憶體選項。此快取記憶體會為行事曆使用者儲存 DWP 主機伺服器資訊 (icsDWPHost LDAP 屬性),從而減少對 LDAP 目錄伺服器的呼叫。
您可能要設定的其他 CLD 快取記憶體選項參數為﹕
如需有關上述參數及其他相關 ics.conf 參數的更多資訊,請參閱附錄 A 「Calendar Server 配置參數」。
對階段作業資料庫使用基於記憶體的檔案系統若要提昇 Solaris 作業系統上的效能,可以透過在 ics.conf 檔案中設定以下參數,為階段作業資料庫配置基於記憶體的檔案系統 (tmpfs):
local.instance.use.tmpfs 為 "true"
而 tmpfs 檔案系統會根據 service.http.sessiondir.path 與 service.admin.sessiondir.path 參數的值被覆蓋。
如需更多資訊,請參閱 Solaris 文件中的 tmpfs(7FS) 與 mount_tmpfs(1M) 線上援助頁:
http://docs.sun.com/db/prod/solaris 和
http://docs.sun.com/db/prod/solaris?l=zh_TW
使用跨多個 CPU 的負載平衡功能如果某台伺服器有多個 CPU,依預設 Calendar Server 會在這些 CPU 上分布 HTTP 服務 (cshttpd 程序) 與分散式資料庫服務 (csdwpd 程序)。
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 檔案並將其設定為 "no"。然後重新啟動 Calendar Server,使變更生效。
使用逾時值可以使用各種 ics.conf 參數的逾時值來調整 Calendar Server 效能。
存在以下類型的逾時值﹕
如需有關編輯 ics.conf 參數的資訊,請參閱編輯 ics.conf 配置檔案。
csadmind 的逾時值
表格 19-1 說明 ics.conf 檔案中由管理 (csadmin) 服務使用的 Calendar Server 逾時參數。
一般使用者的 HTTP 逾時值
表格 19-2 說明 ics.conf 檔案中套用於一般使用者的 Calendar Server HTTP 逾時參數。
GSE 佇列逾時值
以下 ics.conf 檔案參數指定在 Calendar Server 為進來的工作掃描群組排程引擎 (GSE) 佇列之前需要等待的時間 (以秒為單位):
gse.belowthresholdtimeout = "3"
如果佇列中的工作多於所配置的最大執行緒數目,最後一個執行緒始終會再次掃描佇列。因此,僅當工作數目小於所配置執行緒的最大數目時,此設定才能生效。
預設為 "3"。增大此數目會減少伺服器掃描佇列的頻率並提昇整體效能。但是,如果由於事件量的增加而使佇列變得過大,可以減少時間,以允許更快處理佇列。這可能會導致降低整體效能,但事件將會更快更新。
使用更新檢視選項對於 Calendar Express 一般使用者,[更新檢視] 選項透過瀏覽器快取記憶體中的行事曆資料更新檢視,從而提昇效能,而不需要使用 Calendar Server 資料庫中的更新資料來達此目的。
若要啟用 [更新檢視] 選項,必須將 ics.conf 檔案中的以下參數設定為 "yes":
browser.cache.enable = "yes"
如果重設此參數,則必須停止再重新啟動 Calendar Server,使新值生效。
為站點配置 [更新檢視] 選項後,Calendar Express 會在所有行事曆檢視中的 [檢視] 標籤上顯示 [更新檢視]。
使用者按一下 [更新檢視] 時,Calendar Express 會在請求行事曆資料庫的更新資料之前,先檢查檢視中的行事曆資料是否已變更。如果資料尚未變更,Calendar Express 會使用瀏覽器快取記憶體中的資訊更新檢視。請避免對行事曆資料庫進行不必要的請求,尤其在行事曆的事件或工作數目很多時,這一點很有用。
如果某個事件或工作已變更,Calendar Express 會請求行事曆資料庫的更新資料來更新檢視。因此,使用者也可使用 [更新檢視] 來確保 Calendar Express 始終顯示最新的行事曆資料。
停用 Calendar Express 工具條重新繪製選項當使用者按一下 [更新] 時,該工具條重新繪製選項會使 Calendar Express 檢視被重新繪製 (更新)。但是,由於 Calendar Server 透過執行工具條的 XML 及 XSLT 變換來更新檢視,有時此選項會導致效能問題。
若要停用工具條重新繪製選項,請設定 ics.conf 檔案中的以下參數為 "no":
ui.toolbar.repainting.enable="no"
如果 ui.toolbar.repainting.enable 設定為 "no",在任何檢視中按一下 [更新] 都會使 Calendar Express 使用者返回預設檢視。
設定 ui.toolbar.repainting.enable 為 "no" 可以提昇效能,因為 Calendar Express 不執行工具條的 XML 及 XSLT 變換。
如果瀏覽器快取記憶體選項 (browser.cache.enable 參數) 設定為 "yes",則不使用工具條重新繪製選項。
用戶端瀏覽器中的 XSL 描繪Calendar Server 透過將 XSLT 處理作業下載至一般使用者的瀏覽器來執行用戶端描繪,這樣也減少了必須由 Calendar Server 來完成的處理作業。Calendar Server 僅在瀏覽器能夠描繪 XSLT 處理作業時才下載 XSLT 處理作業。在目前發行版本中,此功能僅適用於 Internet Explorer 6.0。
測試顯示,用戶端描繪可將介面 (UI) 延伸性提昇 4 到 6 倍,這意味著 Calendar Server 可支援 4 到 6 倍之多的同步運作的一般使用者,而不會顯著降低 CPU 的效能。
ics.conf 檔案中的以下參數可控制用戶端描繪 (目前僅適用於 Internet Explorer 6.0 或更高版本):
render.xslonclient.enable="yes"
依預設,此參數設定為 "yes"。若要關閉用戶端描繪,請將此參數設定為 "no",並重新啟動 Calender Server。