Sun Java logo     上一个      目录      索引      下一个     

Sun logo
Sun Java System Calendar Server 管理指南 

第 19 章
优化 Calender Server 的性能

要改进 Sun Java™ System Calendar Server 的性能,请考虑使用以下方法:

 


为 LDAP 目录服务器编制索引

要改进 Calendar Server 访问 LDAP 目录服务器时的性能,请在 LDAP 配置文件中添加以下属性的索引:

注意:如果通过运行 Directory Server 设置脚本 (comm_dssetup.pl) 来配置 Directory Server 5.x,则该脚本将为 icsCalendaricsCalendarOwned 属性添加索引。

有关添加目录服务器索引的信息,请参阅位于以下 Web 站点的 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 订阅”->“日历搜索”对话框中输入的值。

测试表明,如果没有为 icsCalendarOwned 编制索引,上述搜索功能搜索 60,000 个条目大约需要 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-serverIDslapd-serverID 目录的完整路径。

设置 nsSizeLimit 和 nsLookthroughLimit 参数

LDAP 目录服务器配置中的 nsSizeLimitnsLookthroughLimit 参数必须足够大,使搜索能够正确完成。

要确定是否为这些参数设置了适当的值,请尝试以下命令:

ldapsearch -b "base"
"(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"

其中,base 是 Calendar Server 用户和资源数据所在目录服务器的 LDAP 基本 DN,user 是最终用户可以在“Calendar Express 订阅”->“日历搜索”对话框中输入的值。

如果 LDAP 服务器返回错误信息,可能是由于参数 nsSizeLimitnsLookthroughLimit 的值不够大。请按以下原则设置这些参数:

启用 CLD 高速缓存选项

要优化对 LDAP 的搜索性能,请按下面的显示设置 CLD 高速缓存选项(“yes”为默认值):

caldb.cld.cache.enable = ìyes

另请参阅使用 CLD 高速缓存选项


使用 LDAP 数据高速缓存选项

LDAP 数据高速缓存选项用来确保提交 LDAP 数据后可以立即使用该数据,即使将 LDAP 目录服务器配置为提交的数据需经过一段延迟后才能使用。

例如,如果您的站点上部署了主/从 LDAP 配置,其中,Calendar Server 通过从属 LDAP 目录服务器访问主 LDAP 目录,导致 LDAP 数据在提交一段时间后方可用。LDAP 数据高速缓存可以确保 Calendar Server 客户端获得准确的 LDAP 数据。

本节包含以下主题:

使用 LDAP 数据高速缓存的注意事项

按照以下原则决定您的站点是否需要配置 LDAP 数据高速缓存:

主/从 LDAP 配置

主/从 LDAP 配置包含一个主 (root) 目录服务器和一个或多个从属(用户或拷贝)目录服务器。Calendar Server 可直接访问或通过从属目录服务器访问主 LDAP 目录服务器:

在上述第二种配置中,由于提交的数据需要经过一段延迟方可在从属目录服务器上可用,因此可能会出现 LDAP 数据不准确的问题。

例如,Calendar Server 提交了 LDAP 数据更改,但由于主目录服务器更新每个从属目录服务器而造成延迟,导致新数据在一段时间后才可用。随后的 Calendar Server 客户端操作使用旧 LDAP 数据并显示旧视图。

如果更新从属目录服务器的延迟较短(只有几秒钟),客户端可能不会出现问题。然而,如果延迟较长(几分钟或几小时),客户端在延迟过程中将显示不准确的 LDAP 数据。

表 19-1 列出了受到主/从 LDAP 服务器配置中延迟影响的 LDAP 属性,在此配置中,Calendar Server 通过从属 LDAP 目录服务器访问主 LDAP 目录服务器。

表 19-1 受延迟影响的 Calendar Server LDAP 属性

操作

受影响的 LDAP 属性

自动置备

icsCalendar、icsSubscribed、icsCalendarOwned 和 icsDWPHost

日历组

icsSet

日历创建

icsCalendarOwned 和 icsSubscribed

日历订阅

icsSubscribed

用户选项

icsExtendedUserPrefs、icsFirstDay、icsTimeZone 和 icsFreeBusy

日历搜索

icsCalendarOwned

要确保最终用户获得最新的 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 数据高速缓存数据库可提供:

限制

LDAP 数据高速缓存不提供:

LDAP 数据高速缓存配置参数

表 0-2 介绍了 ics.conf 文件中有关 LDAP 数据高速缓存的配置参数。

表 0-2 LDAP 数据高速缓存配置参数 

参数

说明

local.ldap.cache.enable

启用 (yes) 或禁用 (no) LDAP 数据高速缓存。默认值为 no。

local.ldap.cache.checkpointinterval

指定检查点线程休眠的秒数。默认时间为 60 秒。

local.ldap.cache.circularlogging

指定处理数据库日志文件后是否将其删除。默认值为 yes。

local.ldap.cache.homedir.path

指定 LDAP 数据高速缓存数据库的物理位置。默认值为 cal_svr_base/var/opt/SUNWics5/csdb/ldap_cache。

local.ldap.cache.logfilesizemb

以兆字节为单位指定检查点文件的最大大小。默认值为 10 兆字节。

local.ldap.cache.maxthreads

指定 LDAP 数据高速缓存数据库的最大线程数。默认值为 1000。

local.ldap.cache.mempoolsizemb

以兆字节为单位指定共享内存的大小。默认值为 4 兆字节。

local.ldap.cache.entryttl

以秒为单位指定 LDAP 数据高速缓存条目的生存时间 (TTL)。默认时间为 3600 秒(1 小时)。

local.ldap.cache.stat.enable

指定是否将访问记录到 LDAP 数据高速缓存,以及是否在日志文件中记录统计信息。默认值为 no。

注意:此参数仅适用于调试模式。

local.ldap.cache.stat.interval

以秒为单位指定每个统计报告写入日志文件的时间间隔。默认值为 1800 秒(30 分钟)。

local.ldap.cache.cleanup.interval

以秒为单位指定清理数据库的时间间隔。默认值为 1800 秒(30 分钟)。

 


警告

如果没有正确关闭 Calendar Server 或正在运行 Calendar Server 的服务器,则请手动删除 ldap_cache 目录中的所有文件,以避免因任何数据库损坏而导致以后重新启动时出现问题。



使用 CLD 高速缓存选项

如果要与 CLD 插件一起使用,请确保将 ics.conf 文件中的以下配置参数设置为 "yes"(这是每个参数的默认值):

caldb.cld.cache.enable = "yes"

此参数用来启用 CLD 高速缓存选项。此高速缓存选项用于存储日历用户的 DWP 主机服务器信息(icsDWPHost LDAP 属性),从而减少对 LDAP 目录服务器的调用。

以下是您可能要设置的其他 CLD 高速缓存选项参数:

有关这些参数和其他相关 ics.conf 参数的详细信息,请参阅附录 E“Calendar Server 配置参数”


对会话数据库使用基于内存的文件系统

要改进 Calendar Server 在 Solaris 系统上的性能,可以通过设置 ics.conf 文件中的以下参数为会话数据库配置基于内存的文件系统 (tmpfs):

local.instance.use.tmpfs = "true"

然后将基于 service.http.sessiondir.pathservice.admin.sessiondir.path 参数的值覆盖 tmpfs 文件系统。

有关详细信息,请参阅 Solaris 文档中的 tmpfs(7FS)mount_tmpfs(1M) 手册页:

http://docs.sun.com/db/prod/solaris
http://docs.sun.com/db/prod/solaris?l=zh


在多个 CPU 中使用负载平衡

如果服务器上具有多个 CPU,默认情况下 Calendar Server 会将 HTTP 服务(cshttpd 进程)和分布式数据库服务(csdwpd 进程)分布到这些 CPU 中。

service.http.numprocessesservice.dwp.numprocesses 参数确定了每个服务实际运行的进程数目。默认情况下,这些参数被设置为安装时服务器的 CPU 数目,但您可以重置这些值。例如,如果服务器具有 8 个 CPU,但您希望 cshttpdcsdwpd 进程只在 4 个 CPU 中运行,那么可以将这些参数设置为:

service.http.numprocesses="4"
service.dwp.numprocesses="4"

要禁用负载平衡,请在 ics.conf 文件中添加 service.loadbalancing 参数并将其设置为“no”。然后重新启动 Calendar Server 以使更改生效。


使用超时值

可以使用各个 ics.conf 参数的超时值来调整 Calendar Server 的性能。

共有以下几类超时:

有关编辑 ics.conf 参数的信息,请参阅编辑 ics.conf 配置文件

csadmind 的超时值

表 19-1 介绍了 ics.conf 文件中由管理服务 (csadmin) 使用的 Calendar Server 超时参数。

表 19-1 管理服务 (csadmin) 的 HTTP 超时值

参数

说明

service.admin.idletimeout

指定在 HTTP 连接空闲超时前 csadmind 服务等待的秒数。

默认值为 120 秒(2 分钟)。

service.admin.resourcetimeout

指定资源日历的 HTTP 会话超时前 csadmind 服务等待的秒数。

默认值为 900 秒(15 分钟)。

service.admin.sessiontimeout 

指定在 HTTP 会话超时前 csadmind 服务等待的秒数。

默认值为 1800 秒(30 分钟)。

最终用户的 HTTP 超时值

表 19-2 介绍了 ics.conf 文件中适用于最终用户的 Calendar Server HTTP 超时参数。

表 19-2 ics.conf 文件中适用于最终用户的 HTTP 超时值(cshttpd 服务)

参数

说明

service.http.idletimeout

指定在 HTTP 连接空闲超时前 cshttpd 服务等待的秒数。

默认值为 120 秒(2 分钟)。

service.http.resourcetimeout

指定资源日历的 HTTP 会话超时前 cshttpd 服务等待的秒数。

默认值为 900 秒(15 分钟)。

service.http.sessiontimeout 

指定在 HTTP 会话超时前 cshttpd 服务等待的秒数。

默认值为 1800 秒(30 分钟)。

GSE 队列超时值

以下 ics.conf 文件参数以秒为单位指定 Calendar Server 扫描组计划引擎 (GSE) 队列中的传入作业之前等待的时间:

gse.belowthresholdtimeout = "3"

如果队列中的作业数目大于分配的最大线程数,最后一个线程始终会重新扫描队列。因此,此设置仅在作业数目少于分配的最大线程数时才有效。

默认值为 3。增加该值可以减少服务器扫描队列的频率,改进总体性能。但是,如果队列因事件数量的增加而变得太大,则可以减少该时间以加快处理队列。这有可能导致总体性能降低,但用于更新事件的时间会更短。


使用“刷新视图”选项

“刷新视图”选项使用浏览器高速缓存中的日历数据来刷新视图,而无需从 Calendar Server 数据库进行更新,因此对于 Calendar Express 最终用户来说,可以提高系统性能。

要启用“刷新视图”选项,必须将 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 完成的处理。只有在浏览器能够渲染 XSLT 处理时,Calendar Server 才可以下载 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。



上一个      目录      索引      下一个     


版权所有 2004 Sun Microsystems, Inc.。保留所有权利。