IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Rational  >

使用 IBM Rational Performance Tester:资源监控第 2 部分,使用 Windows Performance Monitor 进行监控

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论


级别: 中级

Ashish Patel (ashishp@ca.ibm.com), IBM Performance Optimization Toolkit (IPOT) 架构师兼首席开发人员, IBM Toronto Lab

2007 年 9 月 10 日

本文介绍了利用 Windows Performance Monitor(perfmon),IBM Rational Performance Tester 的其中一个数据收集器,来进行资源监控,文中包含了对该数据收集器的讨论,并讨论了如何在使用 Performance Tester 时对数据收集器进行配置。

概述

资源监控是用于描述随着时间对财产或资产进行的观测的术语。一般这些观测是实际的数值或数据,也通称为统计数据。性能测试领域中最常见的资源是,但不限于,物理系统或系统上执行的进程。当试图确定不能在合理级别上执行的应用程序的问题时,资源监控是至关重要的,因为这种类型的监控允许性能测试人员确定是否缺失系统级资源,或者应用程序本身是否存在问题。

IBM® Rational® Performance Tester 中的资源监控特性允许进行系统和系统进程的实时监控。这种粒度可以令问题测定分析人员准确地诊断出问题,因为资源监控数据可以帮助分析人员确定,失败是否是由系统资源(例如内存),或应用程序的执行所涉及的特殊进程(例如数据库)的缺失所导致的。

Rational Performance Tester 提供了三种资源监控数据收集器:

  • Microsoft ® Windows ® 系统的 Windows™ Performance Monitor
  • Linux®/UNIX® 系统的 rstatd
  • 用于监控各种平台的 IBM Tivoli® Monitoring(ITM)

数据收集器扩展了一般的 Resource Monitoring 平台,该平台包含于 Performance Tester(参见图 1,IBM Rational Performance Tester 堆栈架构)中。利用 Eclipse™ Platform 扩展,可以向该产品添加 Resource Monitoring 平台将会自动加载的额外的数据收集器。


图 1. IBM Rational Performance Tester 堆栈架构
架构堆栈图

因为每个数据收集器都有从远程主机上检索数据的具体机制,所以 Resource Monitoring 平台被设计用来编写定制的 Java™ 代码,利用通用的接口来实现数据收集机制。

一旦检索到数据,就必须将这些数据转换为 Eclipse Test and Performance Tools Platform(TPTP)统计模型格式。该模型格式是基于 Eclipse Modeling Framework(EMF)并且设计成利用 XML 存储统计数据的一般方法。开源的 Eclipse TPTP 工程提供了抽象出该数据存储细节,并且使被检索数据的存储变得容易的 API。

Performance Tester 中提供的所有数据收集器都有数据检索的具体机制,然而,一旦收集了数据,收集器就会将该数据转换为通用的统计模型格式。因此,Performance Tester 和其他基于 Eclipse 的视图根据该数据汇报报告。

用 Windows Performance Monitor 进行监控

Microsoft Windows 操作系统包含可以通过 Windows Registry 或者使用应用程序编程接口(Application Programming Interface,API)来访问的内嵌测量基础架构。测量基础架构与 Windows Management Infrastructure(WMI)是分离的,并且考虑到大约一千个性能计数器的实时监控。

性能计数器

性能计数器指示操作系统、应用程序或者服务执行得有多好。每个计数器都有特定得收集量度,例如,名为 % Processor Time 的计数器将收集处理器执行非空闲线程所消耗时间的百分比,并且可以作为处理器活动的指示器。获取这种计数器随时间的测量可以帮助分析人员发现系统的瓶颈,并且调整系统或应用程序的性能。

在测量基础架构中,用两级层次对计数器进行结构化。第一级包括性能对象,它是可以为物理设备建模,或者抽象系统中组件的单元。第二级包括性能计数器,它是性能对象的属性。表 1 提供了一列三个性能计数器,以及它们所属的性能对象。


表 1. Windows Performance Monitor 对象和计数器
性能对象性能计数器
处理器% User Time(用户时间)
% Processor Time(处理器时间)
Interrupts/sec (中断/秒)
内存Page Reads/sec(读取的页/秒)
Page Writes/sec(写的页/秒)
Available KBytes (可用千字节)
逻辑磁盘Disk Read Bytes/sec(磁盘读取字节/秒)
Disk Write Bytes/sec(磁盘写字节/秒)
% Disk Time(磁盘时间)

数据收集

在使用 Windows Performance Monitor 时,Performance Tester 所显示的资源监控数据是利用 Microsoft Windows 操作系统中已经存在的现有测量基础架构来收集的。因此,该数据收集器被认为是缺少代理的,因为 Performance Tester 的用户不需要向正被监控的操作系统安装任何额外的软件。

Windows Registry 中存储了性能计数器数据,利用两种方法可以程序化地访问该数据(图 2):

  • 第一个方法是直接访问 Windows Registry,然而,该方法是复杂且麻烦的。
  • 第二个方法(推荐的方法)是使用 Performance Data Helper(PDH)API。PDH 接口是从 Windows Registry 中检索性能对象和性能计数器所需的细节的抽象。此外,该接口自动地返回为适当的单元和范围所调整的值。该接口还是 Windows Performance Monitor(还称作 Perfmon)的基础。

图 2. Microsoft Windows 性能监控堆栈架构
堆栈架构图

物理设备(例如,处理器、内存,和网卡)及应用程序(例如,操作系统、数据库、服务器,和第三方驱动程序)中都内嵌由 Windows Kernel 所监控的特殊的计数器。该方法考虑了只由操作系统监控的计数器标准集合的可扩展性。

此外,一旦注册了计数器,任何已经使用了 Windows Registry 或 PDH 接口的应用程序都能够自动监控这些特殊的计数器。

在 Performance Tester 的情况下,用 PDH 接口构建定制的应用程序(pdh.dll),以从运行 Microsoft Windows 系统的系统中收集数据。定制的应用程序以 Performance Tester 插件扩展的形式集成到 Eclipse 平台上。该插件用 Java Native Interface(JNI)与定制应用程序进行交互。

系统配置

在本部分中,我们将介绍如何为 Windows Performance Monitor 配置系统。

性能详细级别

测量基础架构包含了大约一千个性能计数器,它们的数量还在随着 Microsoft Windows 更新版本的发布而增长。对用户呈现大量的计数器会引发适用性问题,而因此,应该在使用 PDH 接口时用一个配置参数来帮助限制呈现给用户的性能计数器的数量。

以下是 PDH 接口中可用的不同性能详细级别的列表。

  • 初学者:表明该计数器可以让大多数用户使用。这是最普通的计数器详细级别。
  • 高级:表明该计数器可能只对高级用户有用。
  • 专家级:表明该计数器可能只对最高级的用户有用。
  • 巫师级:表明该计数器不可能对任何用户有用。

在 Performance Tester 的情况下,定制应用程序(pdh.dll)使用高级详细级别。该详细级别包括一般的计数器(包括处理器、磁盘、内存,等等)和具体的计数器(包括网卡接口)。在此版本中,该详细级别是不可配置的。

网络接口

Windows Performance Monitor 数据收集器的用户必须确保正确配置物理机器(数据是从这些物理机器上收集来的)上的网络接口。用户必须确保所连接的网络接口启用了 File and Printer Sharing for Microsoft Networks(参见图 3)。


图 3. Microsoft Windows 中的以太网网络连接属性
对话框的图像

这是必需的,因为 PDH 使用 Windows net use 命令建立了对远程机器的连接,来进行数据收集。您可以打开任意 Microsoft Windows 系统的控制面板中所列出的网络连接的属性对话框来启用该服务。

只有当 Performance Tester 工作平台客户端在 Microsoft Windows 操作系统上运行时,Performance Tester 的用户才可以从任意运行 Microsoft Windows 操作系统的系统上收集性能计数器数据。这种局限性是由于 PDH 使用客户端和目标终端的操作系统来进行通信。

配置性能进度表

要使用 Windows Performance Monitor 来配置资源监控,就要在已知的性能进度表中创建新的或添加现有的位置。

输入收集的数据所出自的目标 Windows 主机名,并从可用的数据源列表中选择 Windows Performance Monitor(参见图 3,“使用 IBM Rational Performance Tester 进行资源监控,第 1 部分”)。

注意:您想要监控的主机必须可以通过 Windows 网络访问到。一般,如果您能够从工作平台连接到远程主机上的共享的硬盘驱动器,那么您也能够将远程主机作为资源监控数据的来源。如果您不能通过 Windows 网络访问该远程主机,那么当您试图使用 Resource 页来选择您想获取的数据类型时将显示错误消息。

Location 选项卡上,输入用户名、密码,和域(图 4)。

  • 用户名和密码必须与目标主机系统上的 Windows 用户帐户匹配。
  • 域是可选的,只有在您需要执行跨域的验证时才需要。
  • 选择 Save Password 在本地保存您的密码。如果您不保存密码,那么当您编辑所配置的位置或当运行使用该位置的性能进度表时,将会提示需要该密码(根据主机系统配置)。

图 3. Windows Performance Monitor Location 配置
对话框的图像

Resource 选项卡上,选择您想要获取的数据类型(图 5)。树型视图显示出主机及其所有的计数器组和计数器。该树是由文件夹图标所标识的性能对象和秒表图标标识的性能计数器组织成的。


图 5. Windows Performance Monitor Resource 选项卡
对话框的图像

去掉 Show only selected counters 复选框,可以令您看到所有可用的计数器(图 6)。您需要选择,因为监控所有可能的资源数据需要大量内存。在计数器上晃动鼠标可以看到关于该计数器所度量的内容的详细情况。


图 6. Windows Performance Monitor Resource 选项卡显示了所有可用的计数器
对话框的图像

Options 选项卡上,可以按下面方式配置时间间隔属性(图 7):

  • 输入 Polling Interval (in seconds),用于收集资源数据。举例来说,如果您接受了默认值 5 秒,那么在进度表运行的过程中,每隔 5 秒从具体的主机上收集计数器信息。
  • 输入 Timeout Interval (in seconds)。如果在进度表运行过程中的一段时间内,资源监控主机没有响应,那么将记录一个错误。

图 7. Windows Performance Monitor Options 选项卡
对话框的图像

一旦完成并保存了配置,资源监控位置就加入到了性能进度表中(图 8)。


图 8. 用 Windows Performance Monitor 配置 Resource Monitoring
对话框的图像

在本文的第 3 部分中,我们将介绍用 Linux/UNIX 系统的 rstatd 进行的性能监控



参考资料

学习

获得产品和技术

讨论


关于作者

Ashish Patel

Ashish Patel 是位于加拿大 IBM 多伦多软件实验室的软件架构师和开发主管。他拥有超过 11 年的软件架构及开发行业经验,并具有四年的业务开发和企业家经验。他参与了 IBM 的首个实习项目 Extreme Blue,在该项目中,他合作开发了 IBM Performance Optimization Toolkit。他已经为 IBM 工作了两年,从事过软件开发及测试领域内的无数个启动产品。在加入 IBM 之间,他为一家世界级大型的综合石油公司和一家加拿大的顶级能源提供商创建了软件解决方案。他还建立了一家私营软件开发和咨询公司,被任命为该公司的总裁兼主席,并执掌该公司四年之久。他还拥有阿尔伯塔大学的计算机工程学位。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

将您的建议发给我们或者通过参加讨论与其他人分享您的想法.




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款