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

Sun logo
Sun Java System Calendar Server 6 2005Q1 管理指南 

第 21 章
优化 Calender Server 的性能

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


为 LDAP Directory Server 编制索引

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

有关添加 Directory Server 索引的信息,请参阅位于以下 Web 站点的 Directory Server Configuration, Command, and File Reference

http://docs.sun.com/coll/DirectoryServer_05q1
http://docs.sun.com/coll/DirectoryServer_05q1_zh


提高日历搜索在 DWP 环境中的性能

处于 DWP 环境(即,日历数据库分布在多个后端服务器中)中时,在日历数据库中搜索某个日历将会消耗大量时间。如果先在 LDAP 条目中查找,然后直接找出该日历所在的那个 DWP 主机,日历搜索的速度将会更快。

本节包含以下主题:

启用日历搜索以查看 LDAP

要使日历搜索可以先查看 LDAP 目录,然后再查看日历数据库,请执行以下步骤:

  1. 编辑 ics.conf 文件中的 service.calendarsearch.ldap 参数,将该参数设置为 "yes"(默认值),如下所示:
  2. service.calendarsearch.ldap = "yes"

  3. 重新启动日历服务,如下所示:
  4. start-cal


    如果允许匿名访问公共日历,您可能希望禁用日历搜索对 LDAP 进行查看。事实上,Communications Express 要求此参数值为 "no"。


通过创建索引提高搜索性能

  1. 要确定是否可以通过创建索引提高日历搜索性能,请尝试使用以下 LDAP 命令:
  2. ldapsearch -b "base" "(&(icscalendarowned=*user*)
    (objectclass=icsCalendarUser))"

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

    测试表明,如果没有为 icsCalendarOwned 创建索引,上述搜索功能搜索 60,000 个条目大约需要 50 到 55 秒。而创建索引后,上述搜索只需要大约 1-2 秒时间。

  3. 通过运行 comm_dssetup.pl 为相应的 LDAP 属性或至少为 icsCalendarOwned 创建索引。
  4. comm_dssetup.pl 将为该属性和许多其他属性创建索引以便提高各方面的性能。如果尚未运行 comm_dssetup.pl,或者已运行它但未执行创建索引操作,则可以再次运行此实用程序来创建索引,也可以使用 Directory Server 工具来执行创建索引操作。

    有关 comm_dssetup.pl 如何创建索引的信息,请参见属性索引

    有关添加 Directory Server 索引的信息,请参阅位于以下 Web 站点的 Directory Server Configuration, Command, and File Reference

    http://docs.sun.com/coll/DirectoryServer_05q1
    http://docs.sun.com/coll/DirectoryServer_05q1_zh


通过禁用通配符搜索提高日历搜索的性能

默认情况下,Calendar Server 中禁用通配符搜索。即,当您使用图形用户界面搜索日历时,或在自定义界面中发出 search_calprops.wcap 时,它将搜索与使用 WCAP 命令传递的搜索字符串完全匹配的字符串。

如果您通过取消注释 ics.conf 文件中的以下行(删除开头的惊叹号 ["!"])启用了通配符搜索,则可能会对性能产生负面影响。

!service.calendarsearch.ldap.primaryownersearchfilter = "(&(|(uid=*%s*)(cn=*%s*))(objectclass=icsCalendarUser))"

要测试通配符搜索对性能的影响,请通过在行前插入惊叹号 ("!") 再次注释该行。


改进 CLD 插件的性能

在系统访问日历数据库中的日历之前,系统必须确定哪个后端计算机存储了该用户的日历。为了找到相应的后端计算机,系统将搜索 LDAP 目录以查找该用户的条目并获取 icsDWPHost 属性。此搜索会消耗大量时间,而且每次对日历数据进行访问时都必须执行它。每个用户会话都需要多次访问数据库,从而导致多次搜索 LDAP。为了节省时间和增强性能,请通过编辑 ics.conf 文件启用 LDAP 数据高速缓存,如下所示:

local.ldap.cache.enable="yes"

LDAP 数据高速缓存存储了用户 ID 及其关联的 icsDWPHost 属性。在搜索 LDAP 查找用户条目之前,系统将检查该高速缓存以查找该用户 ID。如果高速缓存中有该用户 ID,系统将从存储在高速缓存中的 icsDWPHost 属性中获取后端主机名。如果高速缓存中没有该用户 ID,系统将执行 LDAP 搜索并将该用户 ID 和属性复制到高速缓存中。随后,对用户日历数据的访问速度将会变快,因为,它现在将在高速缓存中查找该用户 ID。


提高 LDAP 数据高速缓存的性能

默认情况下,已启用 LDAP 数据高速缓存。要使用 ics.conf 参数调优它,请调整表 21-1 中所示的一个或多个参数。

表 21-1 用于自定义 LDAP 数据高速缓存的 ics.conf 参数 

参数

说明/值

local.ldap.cache.checkpointinterval

检查点之间检查点线程休眠的秒数。默认值为 "60"。

在活动频繁的 LDAP 中,您可能需要降低该时间间隔以使高速缓存尽可能地保持当前状态。同时,请记住刷新高速缓存的频率越高,引入的系统开销就越多。

local.ldap.cache.circularlogging

指定在处理完 LDAP 数据高速缓存数据库日志文件之后是否将其删除。默认值为 "yes"。

请勿更改该参数,除非您有用于删除旧日志文件的自定义清理例程。

local.ldap.cache.logfilesizemb

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

如果您拥有一个活动频繁的 LDAP,此文件可能在检查点时间间隔结束之前填满。请根据您的经验尝试将该值设置为接近日志实际大小的值。

local.ldap.cache.maxthreads

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

在活动频繁的 LDAP 中,您可能希望增加线程数。这可能会导致对 CPU 占用的增加。仅当 LDAP 活动程度最小时,才能减少线程数。

local.ldap.cache.mempoolsizemb

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

local.ldap.cache.entryttl

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

如果高速缓存过快地填满(活动频繁),您可以减少 TTL。但是,这会增加 LDAP 数据库的总访问次数,从而降低系统的总体性能。

local.ldap.cache.cleanup.interval

以秒为单位指定清理各个高速缓存数据库的时间间隔。默认值为 "1800" 秒(30 分钟)。

系统将删除过期条目。此时间间隔不必与条目的 TTL 相同。但将这两个时间同步会使系统更有效。

local.ldap.cache.stat.enable

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

为了增强性能,请仅在调试模式下使用此参数。

local.ldap.cache.stat.interval

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

仅当启用了 local.ldap.cache.stat.enable 时,此参数才处于活动状态。减少时间间隔有助于您查明问题所在。增加时间间隔有助于降低系统负载。


Communications Express 要求禁用数据高速缓存。



调优 LDAP SDK 高速缓存

有一对参数用于控制项目保存在高速缓存中的时间以及高速缓存可以具有的大小。

要调优高速缓存,请编辑表 21-2 中所示的一个或多个参数:

表 21-2 用于配置 LDAP SDK 高速缓存的 ics.conf 参数

参数

说明和默认值

service.ldapmemcachettl

如果将 service.ldapmemcache 设置为 "yes",则可以使用此参数来设置项目所允许的最大高速缓存秒数。如果设置为 "0",则项目的高速缓存时间没有限制。默认值为 "30"

service.ldapmemcachesize

如果将 service.ldapmemcache 设置为 "yes",则可以使用此参数来设置高速缓存将消耗的最大内存量(以字节为单位)。如果设置为 "0",则高速缓存没有大小限制。默认值为 "131072"


调优自动备份

必须根据需要调整保留在磁盘上的备份数目,使其不会超出可用磁盘空间。要帮助管理归档和热备份所占用的磁盘空间量,您可以更改各种 ics.conf 参数的设置,这些参数用于确定同时可以保留的备份副本数以及将触发清理早期副本的磁盘空间阈值。

可以为每种备份类型(归档和热备份)调整以下三种参数:

Calendar Server 将备份保留可能的最多天数而不会超过磁盘空间的阈值。因此,如果当前备份将要使磁盘使用率超过阈值,系统将清除最早的备份副本,并查看磁盘空间使用率是否降低到阈值以下。系统将继续清除早期的备份副本,直到满足以下条件之一:再删除一个备份副本将使磁盘上的备份数目小于备份副本的最小数目,或者磁盘空间使用率已低于阈值。

因此,您可以使用阈值参数来管理备份使用的磁盘空间量。反之,您也可以通过调整允许的磁盘空间量和副本量来管理保留在磁盘上的备份数目。

表 21-3 列出了用于控制磁盘空间和磁盘上保留的备份数目的 ics.conf 参数:

表 21-3 用于设置保存在磁盘上的备份数目的 ics.conf 参数

ics.conf 参数

默认设置

说明

caldb.berkeleydb.hotbackup.mindays

3

将热备份保留在磁盘上的最少天数。

caldb.berkeleydb.hotbackup.maxdays

6

将热备份保留在磁盘上的最多天数。

caldb.berkeleydb.hotbackup.threshold

70

用于热备份的磁盘空间占总磁盘空间的百分比。超过此值时将触发清除最早的副本。

caldb.berkeleydb.archive.mindays

3

将归档备份保留在磁盘上的最少天数。

caldb.berkeleydb.archive.maxdays

6

将归档备份保留在磁盘上的最多天数。

caldb.berkeleydb.archive.threshold

70

用于归档备份的磁盘空间占总磁盘空间的百分比。超过此值时将触发清除最早的副本。


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

要改进性能,可以通过设置 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 的超时值

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

表 21-4 管理服务 (csadmin) 的 HTTP 超时值

参数

说明

service.admin.idletimeout

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

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

service.admin.resourcetimeout

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

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

service.admin.sessiontimeout 

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

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

最终用户的 HTTP 超时值

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

表 21-5 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 Express 用户界面

本节包含了有关用以下方式调优 Calendar Express 的说明:

使用“刷新视图”选项

“刷新视图”选项使用浏览器高速缓存中的日历数据来刷新视图,而无需从 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 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 可以在不必显著降低 CPU 性能的情况下同时支持大约 4 到 6 倍的最终用户。

ics.conf 文件中的以下参数控制客户端渲染(当前仅适用于 Internet Explorer 6.0 或更高版本):

render.xslonclient.enable="yes"

默认情况下此参数被设置为 "yes"。要关闭客户端渲染,请将此参数设置为 "no",然后重新启动 Calender Server。



上一页      目录      索引      下一页     


文件号码:819-1478。版权所有 2005 Sun Microsystems, Inc. 保留所有权利。