内容提要: 通过
对Domino性能数据的 监测和分析,可以知道Domino服务器的运行状况,即在当前的工作负载下Domino服务器是否出色运行。它也可以帮助您找到Domino 服务器配置中的限制因素,从而最大限度地提高
Domino 服务器
的性能.
在i系列400里,可以使用Domino 控制台命令来 交互监测Domino系统性能 ,也可以在指定时间间隔内产生系统性能统计 报告放入数据库"statrep.nsf"中.请注意,性能收集会占用系统资源,所以请只收集必需的数据.下文介绍如何用Domino主控台的 命令来 交互监测系统性能. 说明: (1)主控台命令,帮助交互监测系统性能的 常用命令: show tasks show stat show dbs show stat platform show tran 除了交互看结果外,也可以把结果保存成TXT文件放到i系列的集成文件系统(IFS)里,便于将来查看: show xxxx >filename (1.1)主控台命令 show tasks : 显示运行的服务任务(tasks)状态; 用"debug"参数还可以显示i系列作业"SERVER"的每个任务对应的线程号(thread number),从而帮助映射每个线程到用户或系统功能,如下图所示: 特: "SERVER"最重要的Domino服务任务,多线程作业,是QNNINSTS后的第一个被启动作业,控制所有Domino服务器中发生的事情,比如启动会话、控制存取NSF数据库、控制Domino分区间通讯等.SERVER任务初始化会激活8到10个线程.随着用户不断登录,会有线程陆续激活,会引起CPU资源消耗. 在上图的任务列,可见服务任务和相应的线程标识(thread id),比如"92344:005B: 0036".如果希望分析它引起的性能问题,需要显示这个线程的调用堆栈(call stack).用命令WRKDOMSVR -> option 9 (Work server jobs),可以找到名为 092344/QNOTES/SERVER的 作业,当前它有69个线程,如下所示:
选择 option 12 (Work with threads), 找到ID为00000036的线程,用 option 10 (Display call stack) 显示调用堆栈: 为了更好的分析堆栈内容,请使用下列方法: CRTLIB GWVLIB TEXT('Panel Group for better Domino Call Stack display') CRTDUPOBJ OBJ(GWVJOB) FROMLIB(QDOMINO603) OBJTYPE(*PNLGRP) TOLIB(GWVLIB) NEWOBJ(QGWVJOB) CHGSYSLIBL GWVLIB 然后再用 option 10 (Display call stack) 显示调用堆栈,结果更易于阅读: 特:这种堆栈显示结果只适用于Domino作业,若要显示非Domino作业的调用堆栈,请用以下命令去除设置: CHGSYSLIBL LIB(GWVLIB) OPTION(*REMOVE) (1.2)主控台命令 show stat : 可以显示和内存、交易、并行用户、硬盘空间、邮件服务、复制服务、网络活动等相关的统计报告. 为了监控性能和研究性能问题,建议使用以下命令: (1.2.1)show stat Server.Trans.PerMinute : 统计上一分钟发生的交易数,便于监测整个系统的使用情况. (1.2.2)show stat Server.Users* : 统计现在处于活动状态的Notes会话数(包含所有和系统相连的用户和所有服务任务,比如 Replicator) (1.2.3)show stat Server.Sessions.Dropped : 统计会话断开数,便于监测整个系统的响应时间. (1.2.4)show stat Domino : 监控Domino的HTTP服务器的活动, 比如 show stat Domino.Config.ActiveThreads* 命令显示了在服务器文档(server document)中参数设定的为HTTP请求服务的线程最大最小值. 如果监控其它Internet工作负载,可以直接输入如下Domino主控台命令: show stat SMTP show stat POP3 show stat IMAP show stat LDAP (1.2.6) show stat Database.* / show stat Database.Database.BufferPool.* : 监测这个Domino服务器用了多少 NSF buffer pool资源.如果BufferPoolPeak长时间使用超过了95%,需要增加 NSF_Buffer_POOL_Size.如果PerCentReadsInBuffer的值太低,代表没有足够的内存来cache读请求.因为PerCentReadsInBuffer代表buffer pool服务于外部请求的时间总计百分比,所以越高越好. 特:当从Domino主控制台发出 'show stat'命令,统计数据是一个从Domino最新一次启动算来的累加值.为了刷新统计累计时间点,可以用命令 Set Statistics xxx. 比如,Set Stat *,或 Set Stat Server.Trans.Total. (1.3)主控台命令 show dbs : 显示Domino打开数据库的相关统计信息.比如,数据库名,被打开的次数,是否数据库被修改了但还没刷新修改后的信息到硬盘, 数据库锁等待的发生数量、平均等待时间和峰值等待者数量等. 为了显示"LockWaits"和"AvgWait"值,要临时修改notes.ini文件,添加设置: COLLECT_DB_LOCK_WAITS=1
因为它会消耗系统资源,请在使用完"Show DBS"命令后,再把这个设置删除. (1.4)和平台相关的统计报告(statistical reports): 激活和硬件平台相关的统计报告,需要编辑notes.ini文件,加入如下设置: PLATFORM_STATISTICS_ENABLED=1 再重启Domino服务器.会启动一个"PLATFORM"任务. 从主控台用命令show stat platform来读结果: Platform.System.TotalUtil.* -- 系统CPU平均使用率统计信息,包含处理所有Domino作业和非Domino作业的. Platform.Process.* -- 表明某个单独Domino服务器上的特定Domino任务的CPU使用率 Platform.Memory.* -- 内存统计信息. Platform.LogicalDisk.* -- 整个i系列的硬盘使用统计信息(All configure disks in all ASPs) 命令"show stat platform"后还可以跟参数: Time: 显示或修改性能数据收集时间间隔 Reset: 刷新和平台相关统计数据的收集 Wait: 停止和平台相关统计数据的收集 Run: 启动和平台相关统计数据的收集 比如,启动一个新的性能数据收集画面,取样时间为5分钟,可以从Domino主控台上敲入命令: 1. platform time 5 2. platform reset (1.5) 主控台命令 show tran : 为每个运行的Domino中心交易提供性能统计报告.通过分析结果,可以决定是否交易需要更多CPU资源来完成. 一般来说,好的交易响应速度应该小于1000毫秒;而大于 5000 毫秒的交易响应速度是较差的. 附录:下面列出常用的Domino主控台命令和缩写.如果希望了解完整的语法和参数,请参阅"Lotus Domino Administrator's Guide" 或 "Domino 5 Administration Help database (help5_admin.nsf)". Broadcast (b) Dbcache Flush (db f) Dbcache Show (db s) Drop (dr) Exit (e) Help (he) Load (l) Pull (pul) Push (pus) Quit (q) Replicate (rep) Restart Port (res po) Restart Server (res se) Route (ro) Set Configuration (se c) Set Secure (se se) Set Statistics (se st) Show Allports (sh a) Show Cluster (sh cl) Show Configuration (sh co) Show Directory (sh dir) Show Diskspace (sh dis) Show Memory (sh me) Show Performance (sh pe) Show Port (sh po) Show Schedule (sh sc) Show Server (sh se) Show Stat (sh st) Show Tasks (sh ta) Show Users (sh u) Show Transactions (sh tr) Start Port (sta po) Stop Port (sto po) Tell (t) Trace (tr) 说明:(2)
The reports 报告: Domino服务器会自动产生系统相关情况报告,这些信息以两种形式呈现: "statistics" 和 "events".
"Statistics"显示系统中处理工作的运行状态;"Events"会在系统发生若干事件的时候产生,比如跨服务器间的文件复制,会记录为"Event -- Replicating files with servername". Domino把收集到的信息放入两个数据库: Notes log database (log.nsf) 和 Statistics and Reporting Database (statrep.nsf). (2.1) The Log database (log.nsf) 当Domino服务器第一次启动, "Notes log database(log.nsf)"会被自动创建,每个Domino服务器都会有一个Log数据库.在这个数据库中包含服务器所有和数据库、用户相关的活动事件的记录,比如复制的执行、邮件路由和数据库被使用等.用户也可以客户化什么样的信息被收集. log.nsf更多用来进行系统维护管理,而不是用来收集系统性能数据.当发现诸如复制错误、邮件路由失败、Modem通讯终端等问题或监控定期执行作业时,常常使用这个数据库. 设置和维护log.nsf可以通过修改"notes.ini"文件参数实现,比如定义Log文件的名字、是否把events记录到系统主控台、何时自动从Log文件里删除文档等.语法是: Log Syntax: Log=logfilename, log_option, not_used, days, size 缺省设置是: Log=log.nsf, 1, 0, 7, 40000 -- 代表log文件可以含最多40000个字,每7天删除一次.所有信息也同时发送到主控台. log_option : 1、2、4 – 1 = Log to the console – 2 = Force database fixup when opening the log file – 4 = Full document scan (as opposed to quick scan or open) not_used: Always set to zero; this parameter is not currently used. days: The number of days to retain log documents. size: The size of log text in event documents. 控制什么信息记录进log.nsf: notes.ini文件的设置会影响log.nsf中记录的信息的数量和类型. 为了监控系统性能,建议使用如下设置: LOG_AGENTMANAGER=1 (no default) : agent执行启动事件是否记录进log文件,并在主控台显示,0-1可选 LOG_MAILROUTING=10 (default is 20) : 记录进log文件的信息级别,0-40可选 LOG_REPLICATION=2 (no default) : 复制会话的启停事件是否记录进log文件,并在主控台显示,0-5可选 LOG_SESSIONS=0 (no default) : 单独会话是否记录进log文件,并在主控台显示,0-1可选 LOG_TASKS=1 (no default) : 服务器任务现在状态信息是否记录进log文件,并在主控台显示,0-1可选 LOG_VIEW_EVENTS=0 (no default) : 当views被重新创建,是否记录信息进log文件,0-1可选 LOG_UPDATE=0 (no default) : index相关信息,什么级别的被记录进log文件,0-2可选 MAIL_LOG_TO_MISCEVENTS=0 (no default) : 是否所有mail相关事件信息显示在log文件的Miscellaneous Events view 里,0-1可选 NO_FORCE_ACTIVITY_LOGGING=0 (no default): 是否在所有数据库中,Statlog任务自动激活 activity logging,0-1可选 PHONELOG=0 (default 2) : 是否记录phone calls进log文件,0-2可选 SERVER_SHOW_PERFORMANCE=1 (no default) : 是否在主控台上显示系统性能相关事件, 0-1可选 SHOW_TASK_DETAIL=1 (no default) : 是否加当前执行的交易名字到会话信息中, 0-1可选 比如下图中 notes.ini 的设置: (2.2) The Statistics and Reporting database (statrep.nsf)
(2.2.1)Statistics & Events database (events4.nsf): 在这个数据库中可以创建三种重要的Domino控制文档: Statistic Collection Document / Statistics Monitor Document / Event Notification Document (2.2.2)Statistics and Reporting database (statrep.nsf) 当Domino服务器任务"Event"或"Collect"第一次启动时,数据库statrep.nsf会被自动创建.在这个数据库中包含基于Domino服务器任务运行情况而产生的统计报告和重要事件控制信息.如果一个任务没有运行,比如"HTTP",就不会有和Web相关的统计信息被记录. Domino服务器会不停的刷新统计信息.若希望看系统任何一个时刻的统计信息,请在Domino主控台上用"show stat"命令.若希望看系统一段时间间隔内的统计信息,可以使用"Collect"任务来收集Domino系统一段时间间隔内的统计信息并放入数据库statrep.nsf.什么类型的统计信息需要收集?这需要配置一个events4.nsf数据库中的" Statistic Collection Document ".如果希望设置某种类型的统计信息的阀值(thresholds),从而让这种统计数据达到阀值后系统自动产生警告信息,可以配置一个events4.nsf数据库中的" Statistic Monitor Document ",并填写" Statistic Collection Document 中的收集警告间隔参数.查看自动产生的警告信息,请用下列步骤查找:Server - Analysis Tab - Statistics Reports -Alarms view in the Domino Administrator. 为了及时通知系统管理人员系统发生的重要系统事件(events),Domino服务器有一个"Event"任务,它发送通知信息到 Event Notification document (在events4.nsf中创建)中指定的地方. Statistic Collection Document -> Domino启动"collect"任务,缺省只会收集此Domino服务器上的统计信息.为了客户化收集地信息,甚至指定一台Domino服务器帮助收集其它多台的信息,可以人为在数据库events4.nsf中创建"Statistic Collection Document". 比如, 在一台i系列上有两个Domino服务器,就可以指定其中一个Domino服务器统一收集这两个Domino服务器的统计信息,放入一个statrep.nsf数据库中. Statistics Monitor Document ->指出什么类型信息会被监控,超出规定范围会产生一个什么级别的事件.在Domino管理客户端,进入"Configuration tab,""Statistics & Events view ";或直接在数据库events4.nsf中点"Add Statistic Monitor"键来创建这个文档. Event Notification Document -> 定义当系统产生了一个事件,根据事件级别来执行一个什么动作.在Domino管理客户端,进入"Configuration tab,""Statistics & Events view ";或直接在数据库events4.nsf中点"Add Event Monitor"键来创建这个文档.
(3) 和平台相关的 统计报告(statistical reports) : 激活和硬件平台相关的统计报告,需要编辑notes.ini文件,加入如下设置: PLATFORM_STATISTICS_ENABLED=1 再重启Domino服务器. 从主控台用命令show stat platform来读结果.也可以运行Domino的"Collect"作业,把这些信息记录到statrep.nsf数据库中便于日后分析.所以需要从"events4.nsf"数据库中, 编辑已有 的"Statistic Collection Document" 文档,或创建一个新的" Statistic Collection Document "文档. 在数据库statrep.nsf中包含有和硬件平台相关信息显示的标准"view"(如下图所示).但为了专门针对i系列400,需要人为在数据库statrep.nsf中创建一些特别定制的"view". 请按照下列步骤创建为i系列特别定制的"view": 1. 创建一个新的数据库statrep5的备份 模板(statrep5.ntf),并新命名为statrep400.ntf. 2. 用 Domino Designer修改这个模板 , 让它显示OS/400平台和Domino的统一统计信息. 3. 基于这个 模板创建自己的统计数据库statrep400.nsf . 4. 配置 Statistics Collection Document 来使用这个新的 statrep400.nsf 数据库接收统计数据. 详细介绍,请查阅参考资料. 参考资料: <<Domino for iSeries Sizing and Performance Tuning>> SG245162