构建高性能的 Lotus Domino 应用(4)

构建高性能的 Lotus Domino 应用: 第 4 部分 Domino 应用性能监控简介当 Lotus Domino 服务器被部署和运行在实际环境中后,不可避免地会出现各种性能问题。如何快速地定位和解决这些性能问题,是构建高性能的 Domino 应用中的重要一环。性能监控是常用的发现性能问题的方法,...显示全部
构建高性能的 Lotus Domino 应用: 第 4 部分 Domino 应用性能监控

简介

当 Lotus Domino 服务器被部署和运行在实际环境中后,不可避免地会出现各种性能问题。如何快速地定位和解决这些性能问题,是构建高性能的 Domino 应用中的重要一环。性能监控是常用的发现性能问题的方法,它通过实时监控服务器的各项性能参数,及时发现服务器运行过程中的性能瓶颈,帮助系统管理员定位这些瓶颈并且解决问题。本文通过介绍四种常用的 Domino 服务器性能监控方法,从各个角度全方位监控服务器运行时的性能状况,为 Domino 服务器性能分析和调优提供有力的依据。

Domino 服务器性能监控与分析

性能监控关注点

一般的服务器监控主要监控服务器上运行的各项程序以及它们的状态,包括方方面面的内容,比如运行期间产生的错误,服务器启动的后台任务等等。性能监控作为服务器监控的一个子集合,更加关注于服务器在性能方面的各项行为。服务器性能监控通过一些工具来监控服务器性能方面的各项指标(如处理器响应速度,资源利用情况等)的变化情况。这些数据随着服务器负载的变化而变化。一旦服务器负载超过所能承受的范围时,管理员可以对性能监控提供的这些监控数据进行进一步的分析,找出此时的服务器的性能瓶颈。因此,性能监控是解决服务器性能问题,提高服务器性能的十分重要的一环。

一个系统被部署在实际环境后,它的负载随着时间段的不同也会有所不同。根据系统负载的变化,可以将时间段分为三个时期:高峰期,空闲期以及正常期。顾名思义,高峰期是在一段时期内用户访问最频繁,服务器处理最繁忙的时刻。与其他时期不同的是,它反应了服务器会遇到的最大的压力,如果服务器在这段时期内来不及处理用户请求,导致响应很慢,那么服务器的性能就不能满足应用需求。因此,高峰期的服务器性能指标往往就是性能监控的重点。

另一个性能监控的重点是系统的 计划执行任务。计划任务大多是后台执行的任务,用于做一些数据统计,数据整合。Domino 服务器上常见的计划任务有创建文档索引,更新文档视图等等。这些任务在执行时会消耗一定的 CPU 及系统资源,影响服务器处理用户请求的能力,更有一些繁重的任务会产生严重的性能问题。通过系统监控来分析任务执行时的各项信息,也是提高服务器性能的重点。

当熟悉性能监控并且收集了一段时间内的监控数据后,我们可以建立服务器的性能基线。性能基线是指通过分析收集的一段时间内数据,产生的服务器性能度量,它反映了在通常情况下,随着时间段和负载的不同,系统资源利用情况的变化。一个完整的性能基线必须包括系统空闲期,正常期和高峰期的性能数据。通过建立起性能基线,我们可以主观判断系统的性能是否满足需求,并且可以根据这些数据对系统的性能瓶颈对症下药。

Domino 系统监控方法

目前,针对 Domino 服务器的性能监控主要包含以下四种,每一种都有各自的侧重点:

操作系统性能监控工具:是操作系统自带的性能监控工具,主要监控操作系统的资源利用情况,包括 CPU,内存,磁盘等等,如 Widnows 下的 perfmon,AIX 下的 perfpmr。Domino 系统监控工具:监控 Domino 系统活动和平台使用情况的统计信息,通过这些统计信息我们可以获取 Domino 服务器在一段时间内活动的频繁情况。Domino 域监控(DDM):是从 Domino R7 开始引入的服务器监控和故障诊断工具,通过探测的形式监控 Domino 服务器上各部分的活动和任务,并且以事件的形式呈现。Tovoli ITCAM for Application:提供一组工具,为在 IT 基础架构的每一个层面上优化性能和可用性提供集成解决方案。

本文以一套部署的 Domino 服务器环境为例,通过使用不同的监控方法监控其运行时的性能。该部署环境包含一台 HTTP 服务器,负责接收来自客户端的请求并且转发给后台的 Domino 服务器;一台 Domino 服务器 mars,负责处理用户的请求。其部署环境如图 1 所示。


图 1. Domino 部署环境


服务器常见资源性能指标

评判一个服务器是否存在性能问题,最直接的是观测其各项资源利用情况。因为大部分性能问题都是由于某项系统资源在压力下不堪重负,成为性能瓶颈导致的。以 Windows 操作系统为例,我们主要关注系统的 CPU 使用状况,各项主要进程信息,系统内存及磁盘状况 4 大方面:

CPU:CPU 是服务器处理的核心,处理器的处理速度直接关系到服务器处理请求的速度。Processor % Processor Time:表示 CPU 执行程序所消耗时间的百分比。如果该值持续超过 80%,表明 CPU 是瓶颈。System Processor Queue Length:处理器队列的长度,表示当前在队列中等待执行的命令的数量。队列长度持续大于 2 则表示可能出现处理器拥塞。Processor Context Switches:表示系统中整体线程的调度,切换频率。线程切换是开销比较大的操作。频繁的线程切换导大量 CPU 周期被浪费。Process:反映了某些具体的进程的信息,包括该进程占用的 CPU、私有内存、共享内存等信息。这些信息有助于进一步分析是哪些进程导致了性能瓶颈。Process % Process Time:表示该进程执行消耗 CPU 时间的百分比。常见与 Domino 有关的进程有 nhttp.exe、nserver.exe、nevent.exe 等等。Process Private Bytes、Process Virtual Bytes:Private Bytes 表示该进程在内存中的私有数据空间,不包含共享区,在 32 位 Windows 操作系统中,Private Bytes 最大为 2GB。Virtual Bytes 表示该进程在内存中总占用的空间,包含共享区。当这两个值在系统平稳期不断升高时,说明可能发生了内存泄漏。Memory:大型的服务器程序通常要占用大量的内存,内存不足时会频繁通过换页操作与磁盘上的数据交换,从而导致性能下降。Memory Available Mbytes: 系统当前可用物理内存数。如果 Available Mbytes 的值非常小 (4 MB 或更小 ),则说明计算机上总的内存可能不足,或某程序没有释放内存。memory Pages/sec: 表示由于硬性页面错误而从磁盘取出的页面数,或由于页面错误而写入磁盘以释放工作集空间的页面数。如果该值持续大于几百,表明内存可能存在瓶颈,需要通过增加内存来减少换页次数。Pages/sec 的值非常大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。Disk:磁盘指数反映了系统 I/O 的能力。PhysicalDisk % Disk Time:所选磁盘忙于为读或写入请求提供服务所用的时间的百分比。如果持续超过 90%,表示磁盘很繁忙,此时磁盘是瓶颈。在 RAID 系统中,该参数可能会超过 100%,此时不适用于磁盘性能分析。可以使用 % Disk Busy =100% - %Idle Time 计算PhysicalDisk avg. Disk Queue Length:显示在队列中等待的磁盘读和写命令的数量,该值一般要小于(1.5-2)* 独立磁盘个数,在 RAID 系统中独立磁盘个数可能大于 1 个。超过则说明磁盘 I/O 存在性能瓶颈。

如果在监控中发现以上某一项或者多项资源性能持续变差,比如 CPU 持续超过 80%,内存出现大量的换页操作,则表示系统出现了性能瓶颈。需要注意的是,观测到的出现问题的资源并不一定是引起性能问题的根本原因,它可能是由其他资源出现瓶颈引起的。举例来说,当系统内存不足时,操作系统会频繁通过换页在内存和磁盘之间交换数据,这时可以观察到磁盘的活动也十分频繁。这时,磁盘的瓶颈并不是产生系统性能问题的起因,根本原因是内存不足。监控到系统出现性能瓶颈时,通过进一步深入地分析,检查应用程序能否被进一步优化以减少资源使用,使之不再成为瓶颈。如果程序不能再被优化,那就只能通过增加硬件的性能,如更换更加强劲的硬件,添加集群的方法来提高服务器性能。

收起
参与4

查看其它 2 个回答的回答

Domino 域监控

Domino 域监控简介

Domino Domain Monitoring(简称 DDM),即 Domino 域监控,是从 Domino R7 开始引入的服务器监控和故障诊断工具。DDM 为管理员提供一种面向特性的服务器状态视图。管理员通过视图信息能快速诊断故障并且解决问题。为了帮助系统管理员降低在系统问题追踪、解决上所花费的时间、精力,DDM 能够自动识别、判断问题,并且对问题进行诊断、分析,提供问题的解决办法。DDM 能够帮助管理员在系统问题进一步危害系统之前,快速的定位、解决它们。

DDM 提供如下功能:

定义了超过 50 个可设置的监控,可针对 Domino 服务器的各个功能区域进行主动监控。同时为探测配置提供缺省设置,使设置更轻松。快速发现并报告关键的服务器和客户机问题,并在多个功能区域中确定可能的原因。提供自顶向下、面向功能的域状态视图,能选择性地查看状态的详细信息。提供可视化的指示器,用于显示哪些问题最重要,哪些问题已解决,哪些问题还未解决。提供补救措施和指向数据库的链接,以解决所报告的问题。

Domino 域监控模块

DDM 包含五个不同的模块:事件探测DDM 服务器收集层次结构过滤器相关数据库。其中,事件是 DDM 收集的服务器状态信息的基本单元;探测用于监控 Domino 服务器状态并且生成事件;服务器收集层次结构用于收集一个域中所有服务器上的事件;过滤器用于过滤掉不需要的事件类型;相关数据库包含了“监控配置”数据库(EVENTS4.NSF)和“Domino 域监控”数据库(DDM.NSF)。

事件是 DDM 监控的数据的表现形式。Domino 服务器运行时发生的每件事情都可以是一个事件。事件不仅可以表示系统正在顺畅地工作、处理数据和执行任务,也可以表示系统可能由于未处理数据或未执行所需的任务而导致功能失常。通过“Domino 域监控”数据库(DDM.NSF)可查看 DDM 事件,检查所报告的 DDM 事件可能的原因和可能的解决方案,打开指向可解决所报告事件的相应数据库的链接。DDM 中的事件主要包含两种:增强事件和简单事件。增强事件包括“DDM 探测”文档生成的事件,Domino 事件生成器生成的事件,或者在 DDM 事件报告中出现的带有特定目标信息的任何其他事件。目标信息包括服务器、数据库、代理或用户指定的目标。简单事件就是与特定目标信息无关或不包含特定目标信息的任何事件。

事件按照严重度可以划分为 5 个等级,从高到低依次为 “致命”“失败”“警告(高)”“警告(低)”“一般”。其中“致命”表示系统即将崩溃,“失败”表示不会引起系统崩溃的严重失败,“警告(高)”表示需要干预的功能损失,“警告(低)”表示性能降低,“一般”表示系统的状态消息。事件的严重度可能会发生变化。

事件按不同的状态分为 “打开”“关闭”“永久关闭”。“打开”表示事件具有非“一般”严重性,并且管理员尚未关闭此事件,当事件指向的服务器问题被解决后,打开的事件会自动变成“关闭”。“关闭”表示事件具有“一般”严重性,或者管理员已关闭该事件,如果关闭的事件以后报告为非“一般”严重性,事件状态将变为“打开”。“永久关闭”表示管理员已将此事件标记为永久关闭。这些事件将永远不会自动重新开启,但是管理员可以重新打开或者将其指定为“关闭”。

图显示了一个处于打开状态的事件:从图中可以看到该事件处于“打开”状态,严重度为“警告(高)”,事件的起因以及解决方案。


图 5. DDM 事件


查看大图

探测是一种独立的检查或一组检查。它们本质上是一段段基于条件触发的代码,被植入到服务器的代码中。服务器运行时的状态一旦满足探测的触发条件时,探测代码被触发并且执行,以事件的形式记录下当前服务器的状态。所有的事件都存放在服务器本地的 “Domino 域监控”数据库(DDM.NSF)中。

打开被监控的 Domino 服务器上的“监控配置”数据库(EVENTS4.NSF)数据库,可以创建新的探测或者修改已有的探测配置。DDM 针对不同功能和模块,创建了不同种类的探测,包括管理探测、应用程序代码探测、数据库探测、目录探测、消息探测、操作系统探测、复制探测、安全性探测、服务器探测和网络探测。在性能监控方面,我们首先要关注的是 Domino 服务器的一些关键性能指标,包括 CPU 、内存、磁盘、网络等使用情况,因此,我们创建一些操作系统探测来监控。操作系统探测有四个子类型:CPU 探测、内存探测、磁盘探测和网络探测。以内存探测为例,如图 6,选择监控范围为 “All Servers in the domain”,操作系统为 “Windows”,内存阈值为小于 10MB 时产生严重度为警告(高)的事件,在 10MB 与 50MB 之间时产生严重度为警告(低)的事件。这样在系统运行时出现内存不足时,DDM 会生成警告事件。


图 6. DDM 操作系统内存探测


查看大图

监控 Domino 服务器上的操作系统的主要指标,能从总体上获得服务器的性能状况。为了进一步分析 Domino 各项服务的具体性能,我们还需要添加其他与性能有关的探测。其中比较重要的是应用程序代码探测。应用程序代码探测监控代理调度和代理使用的资源。代理包括代理管理器运行的基于服务器的定时代理,以及 HTTP 进程运行的基于服务器的 Web 代理。应用程序代码探测同样有几个子类型:

跟不上调度的代理:根据当天使用时间的最大数量,确定哪些代理已经落后于调度。按 CPU 使用量分级的代理:生成当天 CPU 使用量最大的 100 个代理的列表。按内存使用量分级的代理:跟踪 LotusScript 和 Java 代理的内存使用。长时间运行的代理:可以确定潜在的失控代理,生成一个运行时间最长的的代理的分级列表。其他类型的代理探测:不需要进行任何配置,会始终运行。代理安全性错误因设计更新任务而禁用的代理超过最长运行时间非正常终止的代理在没有全文索引的数据库上执行全文搜索操作

图 7 显示了一个监控代理 CPU 使用量的探测,它监控 HTTP 进程运行的 Web 代理,按照该代理在运行过程中 CPU 的使用量,设置不同的阈值和事件严重度。


图 7. DDM Web 代理 CPU 探测


查看大图

此外,还有一些分布在不同类型中的子类型探测,从一些角度反映了当前 Domino 某个模块的性能状态。图 8 描述的是消息探测中的邮件流统计检查探测,它用于监控 Domino 服务器上的邮件数量,并检查在 MAIL.BOX 文件中的邮件消息数量是否超过路由器可以处理的邮件消息数量。如果超出处理能力,那么邮件就不能及时被传递,产生性能问题。


图 8. DDM 邮件流统计检查探测


查看大图

当 DDM 探测在服务器上运行时,会产生事件报告给该服务器上的“Domino 域监控”数据库(DDM.NSF)。通过定义 DDM 服务器收集层次结构,我们可以将数据集合到少量服务器上,避免每次都需要在每个服务器上访问每个“Domino 域监控”数据库来检查探测结果。

使用“监控配置”数据库(EVENTS4.NSF),可以创建和管理 DDM 服务器收集层次结构。可以指定一个服务器收集所有的 DDM 事件数据,也可以定义定制的 DDM 服务器收集层次结构,该结构由多个收集服务器组成,也可以由多个收集服务器和多个服务器层组成。与 DDM 过滤器相结合,可以过滤掉不需要收集的事件数据,使性能监控结果更加清晰。

2012-03-07
浏览1026

回答者

擅长领域: portal中间件服务器

最近回答过的问题

回答状态

  • 发布时间:2012-03-07
  • 关注会员:1 人
  • 回答浏览:1026
  • X社区推广