您的位置:首页 > 移动开发 > Objective-C

Loadrunner之性能计数器学习笔记

2008-10-10 14:05 239 查看
说点题外话。最近遇到了几人真是让我不知所错。当谈到技术交流,我感觉只有两个人掌握的知识相当的时候才能讨论出问题,有时候我们没有办法却要面对一些一知半解人的歪曲理论。有时候感觉很可笑,但又不想说什么。就当是自己长见识了。就像安全性测试这块。说白了如果你连基本的一些网络知识或者安全知识都没有。怎么还能谈的上安全测试。就算你拿个工具又有何用。就算你发现了程序中没有过滤特殊字符会存在跨站脚本攻击。你能通过实际攻击拿到管理员权限吗。所以我奉劝那些如果你再对一项技术没有研究很透彻的情况下就不要去给别人讲什么。这样可能会给自己带来尴尬。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 最近一直在看性能测试,总结后发现自己的问题主要存在对一些常用计数器掌握的不是很好,今天重新看了前辈写的一本上。并把计数器部分拿出来做个笔记。也方便自己以后复习。  在进行性能测试过程中,可以监视各个服务器的运行情况(DataBase Server、Web Server等)。在监视场景中通过添加性能计数器来实现。

 如何添加计数器就不做具体介绍了。主要是教给大家在测试过程中一般添加那些计数器,以及这些计数器的一些简单介绍。

 

(1)内存

内存是第一个监视对象,确定系统瓶颈的第一个步骤就是排除内存问题。因为内存的短缺可能会引起各种各样的问题。监视内存主要是检查应用程序是否存在内存泄露。如果发生了内存泄漏,Process/private Bytes计数器和Process/Working Set计数器的值往往会升高。同时Available Bytes的值会降低。同时内存泄漏问题应该通过一个长时间的,用来研究分析当所有内存都耗尽时,应用程序反应情况来进行验证。那么这么说在监视内存时一般就选择这3个计数器。这三个计数器的具体含义如下:

Object(对象)
Counters(计数器

名称)
Description(描述)
参考值
Memory
Available MBytes
物理内存的可用数(单位 Mbytes)。默认情况下IIS5.0 使用50%的可用物理内存,作为IIS 的文件缓存(file cache)。

IIS 基本占用 2.5 MB,每个附加连接将在此基础上占用 10 KB 左右。
至少要有10% 的物理内存值
Memory
Page/sec

Page Faults/sec

Pages Input/sec

Page Reads/sec

Transition

Faults/sec
当处理器向内存指定的位置请求一页(可能是数据或代码)出现错误时,这就构成一个Page Fault。如果该页在内存的其他位置,该错误被称为软错误

(用TransitionFault/sec 计数器衡量);

如果该页必须从硬盘上重新读取时,被称为硬错误。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。Page Faults/sec

是处理器每秒钟处理的错误页(包括软错误和硬错误)。

Pages Input/sec 是为了解决硬错误页,从硬盘上读取的页数,而PageReads/sec

是为了解决硬错误,从硬盘读取的次数。如果 Page Reads/Sec 比率持续保持为 5,表示可能内存不足。

Pages/sec 是指为解析硬页错误从磁盘读取或写入磁盘的页数。
Page/sec 推荐00-20(如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题)。

这些计数器的值比较低,说明Web 服务器响应请求比较快,否则可能是服务器系统内存短缺引起

( 也可能是缓存太大,导致系统内存太少)。

PageInput/sec 的值可以衡量出硬错误页发生的速率,通常它的值会大于或者等于PageReads/sec。
Process
Virtual Bytes( 实

例inetinfo 、

dllhost)

Working Se(t 实例

inetinfo 、dllhost)

Dllhost#n 进程都

要添加计数器
Virtual Bytes 计数器监视IIS5.0 保留的虚地址空间的数量,实例化为inetinfo进程(IIS 运行的核心)和Dllhost 进程(隔

离/ 连接池 的应用程序必需的)。

Working Set 计数器反映了每个进程使用的内存页的数量。系统的内存页(poolPage)只能由操作系统的核心模块直接访问,用户进程不能访问。运行IIS5.0的服务器上,负责web 连接的线程以及它需要的一些对象都保存在未分页的池中(nonpaged pool),比如文件句柄和

socket 连接
 
Process
Private Bytes
指这个处理不能与其他处理共享的、已分配的当前字节数。
 
 
(2)Process计数器

判断应用程序是否存在处理器瓶颈的方法:如果Processor Queue Length 显示的队列长度保持不变(>=2)个并且处理器的利用率%Processor Time 超过90%,那么很有可能存在处理器瓶颈。如果发现Processor Queue Length 显示的队列长度超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(Context Switches/sec 显示的上下文切换次数比较大),那么就会占用大量的系统资源。

如果系统的吞吐量降低并且CPU 的使用率很高,并且此现象发生时切换水平在15000 以上,那么意味着上下文切换次数过高同时还可以比较Context Switches/sec 和%Privileged Time 来判断上下文切换是否过量。如果后者的值超过40%,且上下文切换的速率也很高,那么应该检查为什么会产生这样高的上下文切换。

 

Object(对象)
Counters(计数器

名称)
Description(描述)
参考值
Sytem
Processor Queue

Length
Processor Queue Length 是指处理列队中的线程数。即使在有多个处理器 的计算机上处理器时间也会有一个单列队。不象磁盘计数器,这个计数器仅 计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程 通常表示处理器堵塞。
小于2。显示在由 Web服务器所有 处理器共享的队列中等待执行的线 程数。处理器瓶颈会导致该值持续大 于 2。
Processor
%Processor Time
CPU 使用率。这是查看处理器饱和状况的最佳计数器。显示所有 CPU 的线程

处理时间。如果一个或多个处理器的该数值持续超过 90%,则表示此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的 0 到 x 个实例。
小于75%。排除内存因素,如果该计数器的值比较大,而同时网卡和硬盘的

值比较低,那么可以确定CPU 瓶颈
System
Context Switches/sec
Context Switches/sec 指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。当正在运行的线程自动放弃处理器时出现上下文转换,由一个有更高优先就绪的线程占先或在  用户模式和特权(内核)模式之间转换以 使用执行或分系统服务。它是在计算机上的所有处理器上运行的所有线程的     Thread: Context Switches/sec 的总数并且用转换数量衡量。在系统和线程对象上有上下文转换计数器。
如果切换次数到

5000*CPU个数和

10000*CPU个数中,说明它忙于切换

线程而不是处理ASP 脚本。
Processor
%Privileged Time
% Privileged Time 是在特权模式下处理线程执行代码所花时间的百分比。当调用 Windows 系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。在用户模式执行的线程无法访问这些数据。
对系统的调用可以是直接的(explicit)或间接的(implicit),例如页面错误或中断。不像某些早期的操作系统,Windows 除了使用用户和特权模式的传统保护模式之外,还使用处理边界作为分系统保护。某些由Windows 为您的应用程序所做的操作

除了出现在处理的特权时间内,还可能在其他子系统处理出现。
 
Thread
Context

Switches/sec ( 实

例化inetinfo 和

dllhost 进程
如果你决定要增加线程字节池的大小,你应该监视这三个计数器(包括上面的一个)。增加线程数可能会增加上下文切换次数,这样性能不会上升反而会下降。如果十个实例的上下文切换值非常高,就应该减小线程字节池的大小。
 
(3)网络吞吐量以及带宽

Object(对象)
Counters(计数器

名称)
Description(描述)
参考值
Network Interface
Bytes Total/sec
Bytes Total/sec 为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较
该计数器的值和目前网络的带宽相除,结果应该小于50%
Web Service
Maximum

Connections、

Total Connection

Attempts
Maximum Connections :“最大连接数”是和 Web 服务同时建立起的最大连接数。

Total Connection Attempts :“连接尝试总数”是从服务启动时利用 Web 服务尝试连接的总数。该计数器应用于全部

所列的实例。
 
 
(4)磁盘相关

 判断磁盘瓶颈的方法是通过以下公式来计算:

 每磁盘的I/O 数 = [读次数 + (4 * 写次数)] / 磁盘个数

 如果计算出的每磁盘的I/O 数 大于 磁盘的处理能力,那么磁盘存在瓶颈。

Object(对象)
Counters(计数器

名称)
Description(描述)
参考值
Network

Interface
Bytes Total/sec
Bytes Total/sec 为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较
 
Processor
%Processor Time

% Privileged Time
CPU 使用率

该计数器对应于处理器执行Windows® 2000 内核命令( 如处理SQL Server I/O 请求)所用时间的百分比。如果 Physical Disk 计数器的值很高时该计数器的值也一直很高,则考虑使用速度更快或效率更高的磁盘子系统。
 
PhysicalDisk
%Disk Time
% Disk Time 指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间 的

百分比。如果三个计数器都比较大,那么硬盘不是瓶颈。如果只有%Disk Time比较大,另外两个都比较适中,硬盘可

能会是瓶颈。在记录该计数器之前,请在 Windows 2000 的命令行窗口中运

行 diskperf -yD。若数值持续超过 80%,则可能是内存泄漏。
 
PhysicalDisk
Average Disk

Queue Length
指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。
 
PhysicalDisk
Average Disk

Read Queue

Length
指读取请求(为所选磁盘在实例间隔中列队的)的平均数。
 
PhysicalDisk
Average Disk

Write Queue

Length
指写入请求(为所选磁盘在实例间隔中列队的)的平均数。
 
PhysicalDisk
Average Disk

sec/Read
指以秒计算的在此盘上读取数据的所需平均时间。
 
PhysicalDisk
Average Disk

sec/Transfer
指以秒计算的在此盘上写入数据的所需平均时间。
 
PhysicalDisk
Disk Reads/sec
指在此盘上读取操作的速率。
 
PhysicalDisk
Disk Writes/sec
指在此盘上写入操作的速率。
 
 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息