Web测试中的重要计数器

发表于:2010-7-01 14:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:MSDN    来源:MSDN

  在测试运行过程中,应该监视测试客户端的性能计数器和所有 Web 服务器。Application Center Test 在测试运行中自动监视 HTTP 性能统计信息,但性能计数器必须在测试运行之前明确进行配置。

  性能计数器数据用于确定测试客户端或 Web 服务器到达其 CPU 最大使用率的时间。如果 Web 应用程序的性能瓶颈并非服务器 CPU,则使用性能计数器是确定瓶颈位置的最佳方式。

  有些计数器应该在所有测试中都使用(在下表中以粗体显示),而另一些计数器仅在查找性能问题的不明原因时才使用。

  ACT 客户端的性能计数器

对象性能计数器说明
Processor% Processor Time/_Total测试客户端的处理器使用情况
MemoryAvailable Bytes测试客户端的可用内存量。
Network InterfaceBytes Total/sec进出测试客户端的网络流量。

  Windows 2000 和 IIS 5 的性能计数器

  注意,下列是 Microsoft Windows 2000、IIS 5 和 Microsoft SQL Server 7.0 使用的计数器。其他版本使用的计数器可能不同。

  在 Web 服务器上记录性能计数器数据可以帮助了解哪部分 Web 应用程序导致了性能降低。

对象计数器说明
Active Server PagesMemory Allocated当前由 Active Server Pages 分配的总内存量。将该数字与 Memory:Available Bytes 和 Memory:Committed Bytes 进行比较可确定 ASP 使用的内存百分比。如果测试过程中比率超过 50%,表示某个服务器端对象中存在内存泄漏。
Active Server PagesRequest Errors/Sec每秒的错误数,包括连接错误、编译错误和运行时错误。如果该数字始终大于 0,则测试脚本、服务器配置或 ASP 脚本存在问题。
Active Server PagesRequests Queued该计数器应保持接近 0。超过 IIS 队列长度会出现“服务器太忙”错误。
Active Server PagesRequests Rejected如果该数字经常大于 0,表示测试负载过重或服务器没有充足的资源。
Active Server PagesRequests/Sec每秒的 ASP 请求数。
Internet Information Services GlobalFile Cache Flushes and File Cache Hits通 过比较这些计数器可以查看缓存命中与缓存清理的比率。从缓存删除文件时将发生刷新。这些全局计数器提供了从缓存中刷新对象的比率。刷新太慢会浪费内存。该值可通过调整 ObjectCacheTTL、MemCacheSize 和 MaxCacheFileSize 注册表设置来进行修改。有关详细信息,请参阅 Windows 2000 Resource Kit。
Internet Information Services GlobalFile Cache Hits %显示缓存命中数与总缓存请求数的比率。对于具有静态页面的站点,该值大约为 80%。
MemoryAvailable Bytes可用的剩余物理内存量。IIS 基本占用 2.5 MB,每个附加连接将在此基础上占用 10 KB 左右。
MemoryCache Bytes显示用于静态文件的缓存大小。默认设置为可用内存的 50% 左右,但它会随可用内存的减少而减少,从而降低系统性能。
MemoryPage Faults/sec这 是由 CPU 处理的错误页面的总比率。Page Faults/sec 不区分软硬页面错误,但能够计算这些错误。Memory: pages Input/sec 是读取磁盘用于解决硬页面错误的页面数。而 Memory: Page Reads/sec 是读取磁盘用于解决硬页面错误的次数。将这些值与 Page Faults/sec 值进行比较可得到一个比率。如果 Page Reads/Sec 比率持续保持为 5,表示可能内存不足。
MemoryPages/sec如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。
MemoryPool Paged Bytes and Pool Nonpaged Bytes池容纳由应用程序和操作系统创建并使用的对象。如果池被填满,则可能发生内存泄漏。
Network InterfaceBytes Total/sec将该值与总可用带宽进行比较便能清楚地看到潜在的网络瓶颈。一般要求 bytes/sec 保持在总可用带宽的 50% 以下。
ObjectThreads线程是执行处理器指令的基本可执行实体。如果该数值一直持续上升,请打开 Process:Thread Count 计数器并查看所有线程是由哪个实例创建的。
PhysicalDisk% Disk time显 示磁盘进行读/写活动所花费的时间百分比。如果计数器值很高而处理器和网络带宽并不饱和,则可能是磁盘瓶颈。在记录该计数器之前,请在 Windows 2000 的命令行窗口中运行 diskperf -yD。若数值持续超过 80%,则可能是内存泄漏。请确保为多磁盘计算机添加了该计数器的 0 到 x 个实例。
PhysicalDiskDisk Queue Length显示磁盘中未完成的请求数量。如果队列长度始终大于 3,则表示磁盘、内存或 SQL 服务器配置有问题。
ProcessPrivate Bytes - _Total显示所有实例已经分配但无法与其他进程共享的当前字节数。请确保选择了列表中的 _Total 实例。选择任何其他实例可能会耗尽内存。
ProcessPrivate Bytes (inetinfo instance)Private Bytes (inetinfo) 是 HTTP/ASP 服务已分配但无法与其他进程共享的当前字节数。如果该数值始终很大且不断增加,则可能是服务器端对象发生泄漏。请与 Process: Private Bytes (_Total) 进行比较。
ProcessThread Count (inetinfo instance)Web 服务器进程创建的线程数。
Processor% Processor Time (_Total instance)这是查看处理器饱和状况的最佳计数器。显示所有 CPU 的线程处理时间。如果一个或多个处理器的该数值持续超过 90%,则表示此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的 0 到 x 个实例。
ProcessorInterrupts/sec如果处理器使用率超过 90% 且 % Interrupt Time 大于 15%,则处理器可能负荷过重,并发生中断。
ServerBytes Total/sec显示网络活动。
SystemProcessor Queue Length显示在由 Web 服务器所有处理器共享的队列中等待执行的线程数。处理器瓶颈会导致该值持续大于 2。
System 和 ThreadContext Switches/sec、Context Switches/sec: dllhost (thread # instance) 和 Thread: Context Switches/sec: inetinfo (thread # instance)这些计数器从总体上显示系统所发生的高成本上下文切换数,尤其是在 IIS 5.0 中。
Thread:% Processor Time: InetInfo => Thread #显示 InetInfo 进程的各线程所使用的处理器时间。
Thread:Context Switches/sec: InetInfo => Thread #IIS 服务的线程占用和释放处理器的次数。
Web ServiceBytes Total/sec显示 Web 服务器发送和接收的总字节数。
Web ServiceCurrent Anonymous Users在未经身份验证的应力测试过程中显示与服务的当前连接数。
Web ServiceCurrent Non-Anonymous Users当前连接到 HTTP 服务器的已身份验证的用户数。
Web ServiceNot Found Errors显示返回的 404 响应代码的数量。

  其他性能计数器

  如果 Web 应用程序使用 Microsoft SQL Server 或依赖任何其他应用程序来生成响应,则还需监视此程序的性能计数器。

对象计数器说明
SQL Server:General StatisticsLogins/sec这是每秒登录到 SQL Server 的计数。
SQLServer:Cache ManagerCache Hit Ratio (all instances)显示在高速缓存中找到数据的命中率。如果数值持续小于 85%,则表示内存有问题。
SQLServer:General StatisticsUser Connections显示当前 SQL 用户数。与 Active Server Pages:Requests/Sec 计数器进行比较,可帮助了解脚本对 SQL Server 的影响程度。如果差别过大,则表示测试脚本不能有效地对 SQL Server 进行应力测试。
SQL Server:DatabasesTransactions/sec已开始的总事务数。
SQLServer:LocksLock Waits/sec显示在当前进程完成之前强制其他进程等待的每秒锁定请求的数量。如果该值始终大于 0,则表示事务有问题。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号