性能测试计数器分析指南

Posted 若谷怀风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试计数器分析指南相关的知识,希望对你有一定的参考价值。

 原文出处:UML软件工程组织

1 Windows性能计数器分析

对象

计数器

分析

processor

%precessor time

建议阈值85%

memory

Available bytes

建议阈值少于4MB需要添加内存;

另外,又建议至少要有10%的物理内存值

Pages reads/sec

Page Reads/sec 是指为解析硬页错误而读取磁盘的次数,如果该值一直持续较大,表明可能内存不足

建议阈值305?),大数值表示磁盘读而不是缓存读

Pages writes/sec

Page Writes/sec 是指为了释放物理内存空间而将页写入磁盘的次数

Pages Input/sec

Pages Input/sec 指为解决页错误从磁盘上读取的页数

Pages Output/sec

Pages Output/sec 是指为了释放物理内存空间而写入磁盘的页数

如果该值远远大于Pages Input/sec,可能有内存泄露

Pages/sec

Pages/sec 是指为解析硬页错误从磁盘读取或写入磁盘的页数

建议阈值20

Network interface

(对于TCP/IP

Bytes received/sec

该数据结合Bytes total/sec

Bytes sent/sec

该数据结合Bytes total/sec

Bytes total/sec

推荐不要超过带宽的50%

Packets/sec

根据实际数据量大小,无建议阈值,该数据结合Bytes total/sec

physicaldisk

Disk reads/sec

取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格

Disk writes/sec

取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格

又:上两值相加,应小于磁盘设备的最大容量

%Disk Time

建议阈值90%

Current disk queue length

Avg. disk queue length(如果使用RAID设备,%Disk Time计数器显示的值可以大于100%。如果大于100%,则使用Avg. disk queue length计数器决定正在等待磁盘访问的系统请求的平均数)

不超过磁盘数的1.5~2

如果上两值始终较高,可以考虑升级磁盘驱动器或将某些文件移动到其他磁盘或服务器

 

2 一些注意事项

1. 如果监视不超过4个小时,则每15秒更新一次比较合理;如果将监视系统8个小时或更长时间,则设置的间隔不要小于300秒

2. 个人认为测试报告结果同时还要附上图参考,因为单靠最小、最大和平均值还不能说明问题

3. 与物理磁盘计数器的数据不同,逻辑磁盘计数器的数据默认情况下不是由操作系统搜集。要获得逻辑驱动器或存储卷的性能计数器数据,必须在命令提示符下键入diskperf –yv。默认情况下,操作系统使用diskperf –yd命令包含物理驱动器数据。使用命令diskperf的详细信息,请在命令提示符下键入diskperf -?。

4. 通常,决定性能是否可以接受是一种主观判断,随用户环境的变化而明显地变化。

5. 内存不足是计算机系统中的严重性能问题最常见的原因。工作站响应速度很慢最有可能是内存和处理器问题造成的;服务器更容易受到磁盘和网络问题的影响。

6. 在程序启动时,每个程序的Process\%Processor Time值迅速攀升、降低,然后稳定。注意程序启动时处理器的峰值非常重要;你可能要暂时忽略监视数据中高的启动值,以获得典型程序使用处理器情况的更精确的图片。

7. 当内存减少时,操作系统开始通过从活动较少的程序的工作集(working set)中获得内存来补充,因此,将看到一个程序工作集的增大,而其他程序的值减少。如果系统中没有足够的内存来满足所有活动程序的要求,将发生内存页交换,程序性能将受到影响。

8. 如果发生了内存泄漏,Process\Private Bytes计数器和Process\Working set 计数器的值往往会升高,同时Available bytes会降低。

9. 如果Process不见了,修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance 下的Disable Performance Counters值为0.

 

3 Unix性能计数器分析

计数器

描述

Average load

Ready状态并发进程的平均数

Collision rate

在以太网上侦察到的每秒冲突数

Context switches rate

每秒进程或线程之间的切换数

CPU utilization

CPU使用时间的百分比

Disk rate

磁盘传输的速率

Incoming packets error rate

接受以太网包每秒的错误

Incoming packets rate

每秒接受的以太网包

Interrupt rate

每秒设备的中断次数

Outgoing packets error rate

发送以太网包每秒的错误

Outgoing packets rate

每秒发送以太网包

Page in rate

每秒读到物理内存的页数

Page out rate

每秒写到页面文件和从物理内存移动的页数

Paging rate

每秒读到物理内存或者写到页面文件的页数

Swap in rate

交换的进程数

Swap out rate

交换的进程数

System mode CPU utilization

系统模式下CPU使用时间的百分比

User mode CPU utilization

用户模式下CPU使用时间的百分比

 

4 SQL Server性能计数器分析

计数器

描述

Buffer manager/buffer cache hit ratio

指可在缓冲池中找到而不需要从磁盘中读取(物理I/O)的页面的百分比。如果该值较低则可能存在内存不足或不正确的索引

General statistics object/user conections

指系统中活动的SQL连接数。该计数器的信息可以用于确定系统得最大并发用户数

Locks/lock requests/sec

指每秒请求的锁个数。通过优化查询来减少读取次数,可以减少该计数器的值。

Locks/lock timeouts/sec

指每秒由于等待对锁的授权的锁请求数,理想情况下,该计数器的值为0

Locks/lock waits/sec

指每秒无法立刻得到授权而超时的锁请求数,理想情况下,该计数器的值应该尽可能为0

Locks/number of deadlocks/sec

指每秒导致死锁的锁请求数。死锁对于应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器必须为0

Memory manager/memory grants pending

指每秒等待工作空间内存授权的进程数。该计数器应该尽可能接近0,否则预示可能存在着内存瓶颈

SQL statistics/batch requests/sec

指每秒向服务器提交批的请求次数。该计数器被用来确定系统的负载大小

SQL statistics/ SQL compilations/sec

指每秒编译数。理想状态下该计数器的值应该低,如果batch requests/sec计数器的值非常接近该计数器,那么可能存在大量的特殊SQL调用

SQL statistics/ re- compilations/sec

指每秒的重新编译数。该计数器的值越低越好。存储过程在理想情况下应该只编译一次,然后被他们的执行计划重复利用。如果该计数器的值较高,或许需要换个方式编写存储过程,从而减少重编译的次数

原创:UML软件工程组织

以上是关于性能测试计数器分析指南的主要内容,如果未能解决你的问题,请参考以下文章

性能测试性能分析方法

Windows性能计数器分析性能监视器的使用

性能测试–性能监视器

性能测试--系统计数器与硬件分析

性能瓶颈分析方法

(转)性能测试之----瓶颈分析方法