现在的位置: 首页 > 综合 > 正文

Web 测试的重要计数器

2012年09月14日 ⁄ 综合 ⁄ 共 3730字 ⁄ 字号 评论关闭

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

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

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


ACT 客户端的性能计数器

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


Windows 2000 和 IIS 5 的性能计数器

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

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

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


其他性能计数器

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

对象 计数器 说明
SQL Server:General Statistics Logins/sec 这是每秒登录到 SQL Server 的计数。
SQLServer:Cache Manager Cache Hit Ratio (all instances) 显示在高速缓存中找到数据的命中率。如果数值持续小于 85%,则表示内存有问题。
SQLServer:General Statistics User Connections 显示当前 SQL 用户数。与 Active Server Pages:Requests/Sec 计数���进行比较,可帮助了解脚本对 SQL Server 的影响程度。如果差别过大,则表示测试脚本不能有效地对 SQL Server 进行应力测试。
SQL Server:Databases Transactions/sec 已开始的总事务数。
SQLServer:Locks Lock Waits/sec 显示在当前进程完成之前强制其他进程等待的每秒锁定请求的数量。如果该值始终大于 0,则表示事务有问题。

抱歉!评论已关闭.