Loadrunner之性能计数器学习笔记

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

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

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

<o:p> </o:p>

1)内存<o:p></o:p>

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

Object(对象)<o:p></o:p>

Counters(计数器<o:p></o:p>

名称)<o:p></o:p>

Description(描述)<o:p></o:p>

参考值<o:p></o:p>

Memory<o:p></o:p>

Available MBytes<o:p></o:p>

物理内存的可用数(单位 Mbytes)。默认情况下IIS5.0 使用50%的可用物理内存,作为IIS 的文件缓存(file cache)。<o:p></o:p>

IIS 基本占用 2.5 MB,每个附加连接将在此基础上占用 10 KB 左右。<o:p></o:p>

至少要有10% 的物理内存值<o:p></o:p>

Memory<o:p></o:p>

Page/sec<o:p></o:p>

Page Faults/sec<o:p></o:p>

Pages Input/sec<o:p></o:p>

Page Reads/sec<o:p></o:p>

Transition<o:p></o:p>

Faults/sec<o:p></o:p>

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

(用TransitionFault/sec 计数器衡量);<o:p></o:p>

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

是处理器每秒钟处理的错误页(包括软错误和硬错误)。<o:p></o:p>

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

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

Pages/sec 是指为解析硬页错误从磁盘读取或写入磁盘的页数。<o:p></o:p>

Page/sec 推荐00-20(如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题)。<o:p></o:p>

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

( 也可能是缓存太大,导致系统内存太少)。<o:p></o:p>

PageInput/sec 的值可以衡量出硬错误页发生的速率,通常它的值会大于或者等于PageReads/sec<o:p></o:p>

Process<o:p></o:p>

Virtual Bytes( <o:p></o:p>

inetinfo <o:p></o:p>

dllhost)<o:p></o:p>

Working Set 实例<o:p></o:p>

inetinfo dllhost<o:p></o:p>

Dllhost#n 进程都<o:p></o:p>

要添加计数器<o:p></o:p>

Virtual Bytes 计数器监视IIS5.0 保留的虚地址空间的数量,实例化为inetinfo进程(IIS 运行的核心)Dllhost 进程(隔<o:p></o:p>

/ 连接池 的应用程序必需的)。<o:p></o:p>

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

socket 连接<o:p></o:p>

<o:p> </o:p>

Process<o:p></o:p>

Private Bytes<o:p></o:p>

指这个处理不能与其他处理共享的、已分配的当前字节数。<o:p></o:p>

<o:p> </o:p>

 

2Process计数器<o:p></o:p>

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

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

<o:p> </o:p>

Object(对象)<o:p></o:p>

Counters(计数器<o:p></o:p>

名称)<o:p></o:p>

Description(描述)<o:p></o:p>

参考值<o:p></o:p>

Sytem<o:p></o:p>

Processor Queue<o:p></o:p>

Length<o:p></o:p>

Processor Queue Length 是指处理列队中的线程数。即使在有多个处理器 的计算机上处理器时间也会有一个单列队。不象磁盘计数器,这个计数器仅 计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程 通常表示处理器堵塞。<o:p></o:p>

小于2。显示在由 Web服务器所有 处理器共享的队列中等待执行的线 程数。处理器瓶颈会导致该值持续大 2<o:p></o:p>

Processor<o:p></o:p>

%Processor Time<o:p></o:p>

CPU 使用率。这是查看处理器饱和状况的最佳计数器。显示所有 CPU 的线程<o:p></o:p>

处理时间。如果一个或多个处理器的该数值持续超过 90%,则表示此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的 0 x 个实例。<o:p></o:p>

小于75%。排除内存因素,如果该计数器的值比较大,而同时网卡和硬盘的<o:p></o:p>

值比较低,那么可以确定CPU 瓶颈<o:p></o:p>

System<o:p></o:p>

Context Switches/sec<o:p></o:p>

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

如果切换次数到<o:p></o:p>

5000*CPU个数和<o:p></o:p>

10000*CPU个数中,说明它忙于切换<o:p></o:p>

线程而不是处理ASP 脚本。<o:p></o:p>

Processor<o:p></o:p>

%Privileged Time<o:p></o:p>

% Privileged Time 是在特权模式下处理线程执行代码所花时间的百分比。当调用 Windows 系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。在用户模式执行的线程无法访问这些数据。

对系统的调用可以是直接的(explicit)或间接的(implicit),例如页面错误或中断。不像某些早期的操作系统,Windows 除了使用用户和特权模式的传统保护模式之外,还使用处理边界作为分系统保护。某些由Windows 为您的应用程序所做的操作<o:p></o:p>

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值