热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

=========LoadRunner性能测试指标分析============

ObjectCountersDescrīptionReferencevalueMemoryAvailableMbytes可用物理内存数.如果AvailableMbytes的值很小(

Object

Counters

Descrīption

Reference value

Memory

Available Mbytes

可用物理内存数.如果Available Mbytes的值很小(4 MB或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。

4 MB或更小,至少要有10%的物理内存值

Page/sec

(Input/Out)

为了解析硬页错误,从磁盘取出或写入的页数。

一般如果Page/sec持续高于几百,那么您应该进一步研究页交换活动。有可能需要增加内存,以减少换页的需求(你可以把这个数字乘以4k就得到由此引起的硬盘数据流量)。Pages/sec的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。

推荐00-20

如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题(太多的读写数据操作要访问磁盘,可考虑增加内存或优化读写数据的算法)。

该系列计数器的值比较低说明响应请求比较快, 否则可能是服务器系统内存短缺引起(也可能是缓存太大, 导致系统内存太少)。

>5越低越好

Page Fault

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

当处理器向内存指定的位置请求一页(可能是数据或代码)出现错误时,这就构成一个Page Fault。如果该页在内存的其他位置,该错误被称为软错误(用Transition Fault/sec记数器衡量);如果该页必须从硬盘上重新读取时,被称为硬错误。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。

Page Input/sec

为了解决硬错误页,从磁盘上读取的页数。

Page Output/sec

 

Page reads/sec

为了解决硬错误页,从磁盘上读取的次数。解析对内存的引用,必须读取页文件的次数。

阈值为>5.越低越好。大数值表示磁盘读而不是缓存读。

Cache Bytes

文件系统缓存,默认情况下为50%的可用物理内存。如IIS5.0运行内存不够时,它会自动整理缓存。需要关注该计数器的趋势变化

 

内存泄露

如果您怀疑有内存泄露,请监视Memory\\ Available Bytes和Memory\\ Committed Bytes,以观察内存行为,并监视您认为可能在泄露内存的进程的Process\\Private Bytes、Process\\Working Set和Process\\Handle Count。如果您怀疑是内核模式进程导致了泄露,则还应该监视Memory\\Pool Nonpaged Bytes、Memory\\ Pool Nonpaged Allocs和Process(process_name)\\ Pool Nonpaged Bytes。

 如果发生了内存泄漏,进程的两个计数器process\private bytes计数器和process\workingset 计数器的值往往会升高,同时内存计数器avaiable bytes的值会降低

Process

Page Faults/sec

将进程产生的页故障与系统产生的相比较,以判断这个进程对系统页故障产生的影响。

 

Private Bytes

此进程所分配的无法与其它进程共享的当前字节数量。如果系统性能随着时间而降低,则此计数器可以是内存泄漏的最佳指示器。

 

Work set

处理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集。

 

Processor

% Processor Time

被消耗的处理器时间数量.如果服务器专用于sql server可接受的最大上限是80% -85%.也就是常见的CPU使用率.

 

ProcessorQueue Length

判断CPU瓶颈,如果processor queue length显示的队列长度保持不变(>=2)并且处理器的利用率%Processor time超过90%,那么很可能存在处理器瓶颈.如果发现processor queue length显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈.

 

Physical

Disk

%DiskTime

指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。

正常值<10,此值过大表示耗费太多时间来访问磁盘,可考虑增加内存、更换更快的硬盘、优化读写数据的算法。若数值持续超过80 (此时处理器及网络连接并没有饱和),则可能是内存泄漏。

 

CurrentDiskQueueLength

读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。(磁盘数1.5-2倍)

 

Avg.Disk Queue

Length

Avg.Disk Read

QueueLength

Avg.Disk Write

QueueLength

Disk Read/sec

Disk Write/sec

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

磁盘瓶颈判断公式:

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

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

Avg.DiskQueue Length正常值<0.5,此值过大表示磁盘IO太慢,要更换更快的硬盘。




        

监控类型


监控方法

性能计数器

性能计数器的含义

物理资源

Loadrunner自带

% Processor Time

CPU使用率,如果大于80%表示服务器繁忙。

Available Mbytes

可用物理内存,如果内存持续消耗,而没有回收,表示可能存在问题。

% Disk Time

磁盘使用率,如果大于80%表示磁盘繁忙。

Threads

服务器使用线程数,如果持续增长,且无回收,表示可能存在问题。

SQLServer数据库

Loadrunner自带

Full Scans/sec

全表扫描,如果该值持续较大或偶尔较大,表示可能存在堆表扫描。

Number of Deadlocks/sec

死锁的数量,应该始终保持为0。

Average Wait Time (ms)

锁等待解除时间,平均>25ms,可能需要优化SQL

硬盘资源

Loadrunner自带

Avg Disk Queue Length

平均磁盘队列长度,正常情况下的队列长度应该在1-2之间,过长的对列长度说明系统存在着磁盘IO瓶颈。

Avg Disk Read Queue Length

平均磁盘读队列长度,正常情况下的队列长度应该在1-2之间,过长的对列长度说明系统存在着磁盘IO瓶颈。

Avg Disk Write Queue Length

平均磁盘写队列长度,正常情况下的队列长度应该在1-2之间,过长的对列长度说明系统存在着磁盘IO瓶颈。


===============================================

内存: page fault/sec: (pages/sec 硬+transition/sec 软)
               page reads/sec 页面的读取率  (硬)




吞吐量比较低,cpu利用率高,上下文切换在15000以上


性能调优原则,尽量减少磁盘IO


磁盘使用率 disk time;磁盘读和写的比特数(达到几十到上百M就要注意) 磁盘剩余空间10%以上


网络: pakets/sec(包,不具体到字节,不够直观)   Bytes total/sec(具体到字节,所以关注这个,该值×8然后再与带宽的一半比较,小于则没有瓶颈,一般7位以下的都没问题)


linux可以设置最大堆内存为2G左右,windows 32位为1G左右,再高也不起什么作用

==================================================================================================




一、内存重要指标   Memroy
1、对于Windows系统而言,可用物理内存不要少于1%。
比如:2G内存,如果可用物理内存20M或者更少,则要引起注意,怀疑内存处理能力不足。


2、观察可用物理内存曲线时,在测试过程中提交的物理内存会在测试结束后慢慢释放回来,则这种系统为正常的内存表现。


3、系统的内存存在大量软错误(在内存的其它位置找到该资源)的情况下能正常工作,但是如果硬错误(必须重新回磁盘找数据)较多,则会对系统的性能带来影响。


4、Page Reads/sec (页面读取率):如果该值持续大于内存的1%(如果2G内存,该值持续大于20M),则怀疑内存不足。


说明:在Windows资源监控中,Memory部分:Page Faults/sec和Pages/sec也要监控。


二、磁盘的重要指标  Physical Disk
1、Disk Reads(Writes)/sec 磁盘读或写的阈值:
   一般不超过几十M
如果发现磁盘的读或写超过过了几十M或者上百M,会严重影响系统性能。怀疑是磁盘的瓶颈。


2、性能调优的一个重要原则就是:尽量减少磁盘IO 
说明:Disk I/O 就是磁盘的in或out 读/写


3、磁盘的I/O绝对不可避免(磁盘和内存的交互必不可少),但是可以尽量减少。
举例:
  Java如何提高系统性能(软件本身):
         1)使用缓存Cache: 以空间换时间
                    更多的内存空间 -- 更快读写时间
               提前将磁盘中的数据,读入内存,供程序使用
         2)使用单例
             保证一个类在系统中最多只创建一个实例(对象)


三、网络重要指标:
 Bytes Total/sec  (重要)  和 Packets/sec


1、Bytes Total/sec: 将该值乘以8,与网络带宽的一半进行比较,如果小于带宽的一般,则一般没有问题。


2、1Byte=8bits


说明:网络商带宽单位一般都用bit,显得数值大。比如100Mbps


四、性能分析--监控服务器资源
(客户端在测试时,不需要监控,因为主要对AUT监控,主要是其服务器)
1、为何只监控服务器:测试AUT的性能,只需关注AUT的服务器即可,客户端只需偶尔观察:使用安装LR的测试机(模拟客户端)测试时,偶尔打开本机的任务管理器,点击“性能窗口”,查看,保证正常使用即可。


2、如何监控服务器的内存泄露?
--首先正常测试(监控正常指标),当发现被测系统的内存曲线不正常时,再去测试三项指标。
1)正常的情况:物理内存在测试过程中不断被吃进,在测试结束后释放回来。
2)三项指标:(两升一降)
process\private bytes 和 process\working set 计数器  升高
available bytes 的值降低


3、如何判断应用程序的问题:CPU平均值高,吞吐率整体水平不高甚至有所下降,但是上下文切换很高(正常系统中偶尔的、适当的上下文切换是有必要的,若频繁,则有问题),说明系统应用程序存在设计或代码方面的问题。


六、CPU各项重要资源:
1、%Processor time: CPU忙的时间的百分比,当该值的平均值超过80%或者85%时((yu)阈值),一般怀疑CPU有瓶颈。
---如果CPU的确有瓶颈(处理能力不足),可以添加CPU或者置换性能较高的CPU.
(硬件问题较易解决,软件问题较难解决)


2、Processor Queue Length
1)阈值:单CPU不应大于2;如果是n块CPU,则该值不应大于n+1;


2)双核,则n=2 (虽然双核性能不及2块CPU,但也当做2块CPU处理)


3、注意:在服务器资源中,如果没有特殊说明,则都是值 平均值。(最大值和最小值只作为一般参考)


六、CPU各项重要资源:
1、%Processor time: CPU忙的时间的百分比,当该值的平均值超过80%或者85%时((yu)阈值),一般怀疑CPU有瓶颈。
---如果CPU的确有瓶颈(处理能力不足),可以添加CPU或者置换性能较高的CPU.
(硬件问题较易解决,软件问题较难解决)


2、Processor Queue Length
1)阈值:单CPU不应大于2;如果是n块CPU,则该值不应大于n+1;


2)双核,则n=2 (虽然双核性能不及2块CPU,但也当做2块CPU处理)


3、注意:在服务器资源中,如果没有特殊说明,则都是值 平均值。(最大值和最小值只作为一般参考)


14. 物理磁盘利用率 Physical Disk / %Disk Time 好:<30% 坏:<40% 很差:<50%+
15. 物理磁盘平均磁盘I/O队列长度 Physical Disk / Avg.Disk Queue Length 该值应不超过磁盘数的1.5~2 倍。要提高性能,可增加磁盘
16.  Disk Reads(Writes)/sec 磁盘读或写的阈值:
   一般不超过几十M
如果发现磁盘的读或写超过过了几十M或者上百M,会严重影响系统性能。怀疑是磁盘的瓶颈。



=============================================================

1)判断CPU瓶颈

1, %processor time 平均值大于95

2,  processor queue length大于2(大于处理器个数+1).

3, CPU空闲时间为零(zero percent idle CPU)

4, 过高的用户占用CPU时间(%User Time)

5,   过高的系统占用CPU时间(%Priviliaged Time:长期大于90%或者95%)

备注:

 %User time(processor_total)表示耗费CPU的数据库操作,如排序,执行aggregatefunctions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值

(1)判断CPU瓶颈,如果processor queue length显示的队列长度保持不变(>=2)并且处理器的利用率%Processor time超过90%,那么很可能存在处理器瓶颈.

(2)判断CPU瓶颈阻塞,如果发现processor queue length显示的队列长度超过2,而处理器的利用率却一直很低,则存在处理器阻塞问题,这里处理器一般不是瓶颈.





 

2)判断内存瓶颈与内存泄漏

1,如果发生了内存泄漏,进程的两个计数器process\private bytes计数器和process\workingset 计数器的值往往会升高,同时avaiable bytes的值会降低。

2,如果Available Mbytes(剩余物理内存数)的值很小(4 MB 或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。

 

3)定位磁盘瓶颈

1, % Disk Time 和Avg.DiskQueue Length 的值 (应不大于组成物理磁盘的主轴数的1.5 到2倍) 很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。

2,Physical Disk\ Disk Reads/sec and Disk Writes/sec 大于20 ms,则有可能磁盘瓶颈

3,Avg.Disk sec/Transfer  盘中写入数据的平均时间,单位是秒,一般来说,定义该值小于15ms最为优异,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或硬盘的RAID方式了

4,Disk Transfers/sec 指在此盘上读取/写入操作速率。正常值<(Disk Bytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘。 

备注:如果使用 RAID 设备,% Disk Time 计数器会指示大于 100% 的值。

Avg.DiskQueue Length正常值<0.5,此值过大表示磁盘IO太慢,要更换更快的硬盘。

 

4)定位网络瓶颈

Byte Total/sec 表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈(参考值:该计数器和网络带宽相除,<50%)


5)SQL Server 相关

1, SQLServer:CacheManage->Cache Hit Ratio 显示在高速缓存中找到数据的命中率。如果数值持续小于 85%, 则表示内存有问题。

2, SQLServer:Locks->LockWaits/sec 显示在当前进程完成之前强制其他进程等待的每秒锁定请求的数量。如果该值始终大于 0, 则表示事务有问题。

3, SQLServer:Databases->Transactions/sec 每秒为数据库启动的事务数


Full Scans/sec

全表扫描,如果该值持续较大或偶尔较大,表示可能存在堆表扫描。

Number of Deadlocks/sec

死锁的数量,应该始终保持为0。

Average Wait Time (ms)

锁等待解除时间,平均>25ms,可能需要优化SQL


1 Cache Hit Ratio(缓存点击率),该值越高越好。如果持续低于80%,应考虑增加内存。
2 Full Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。
3 Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。
4 Lock Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。




===============================================================

1.处理器

合理  windows/linux    cpu <80%   

1 UNIX资源监控(Windows操作系统同理)中指标CPU占用率(CPU utilization),如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。如果服务器专用于SQL Server,可接受的最大上限是80-85%
合理使用的范围在60%至70%。
2 Windows资源监控中,如果System\Processor Queue Length大于2,而处理器利用率(Processor Time)一直很低,则存在着处理器阻塞。
CPU资源成为系统性能的瓶颈的征兆:
很慢的响应时间(slow response time)
CPU空闲时间为零(zero percent idle CPU)
过高的用户占用CPU时间(high percent user CPU)
过高的系统占用CPU时间(high percent system CPU)
长时间的有很长的运行进程队列(large run queue size sustained over time)


2. 



磁盘I/O:
1 UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。
2 Windows资源监控中,如果 Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。
I/O资源成为系统性能的瓶颈的征兆 :
过高的磁盘利用率(high disk utilization)
太长的磁盘等待队列(large disk queue length)
等待磁盘I/O的时间所占的百分率太高(large percentage of time waiting for disk I/O)
太高的物理I/O速率:large physical I/O rate(not sufficient in itself)
过低的缓存命中率(low buffer cache hit ratio(not sufficient in itself))
太长的运行进程队列,但CPU却空闲(large run queue with idle CPU)


3. 

数据库服务器:
SQL Server数据库:
1 SQLServer资源监控中指标缓存点击率(Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。
2 如果Full Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。
3 Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。
4 Lock Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。

Oracle数据库:
1 如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。
快存(共享SQL区)和数据字典快存的命中率:
select(sum(pins-reloads))/sum(pins) from v$librarycache;
select(sum(gets-getmisses))/sum(gets) from v$rowcache;
自由内存 select * from v$sgastat where name=’free memory’;
2 如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。
缓冲区高速缓存命中率:
select name,value from v$sysstat where name in (‘db block gets’,
‘consistent gets’,'physical reads’) ;

Hit Ratio = 1-(physical reads / ( db block gets + consistent gets))
3 如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。
日志缓冲区的申请情况:
select name,value from v$sysstat where name = ‘redo log space requests’ ;
4 如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序。
内存排序命中率:





参考述语清单:

中文名称

英文名称

简写

具体含义

同一时间点并发

Same time points concurrent

Points-Concurrent(POC.)

指所有人在同一时间点只做某一个相同的业务,服务器的压力呈单一状态

同一时间段并发

The same time period concurrent

Period-Concurrent

(PEC.)

指不同的人做不同的业务,服务器的压力呈混合、较真实状态

性能验收测试

Performance acceptance tests

Acceptance-Tests

验证测试结果是否能够达到《需求规格说明书》中的目标

性能压力测试

Performance stress tests

Stress-Tests

在满足《需求规格说明书》中的目标后,不断增加用户数,寻找系统的最佳并发数区间和最大并发数区间(最佳和最大并发数,以响应时间的最佳和最大为判断准则)

性能稳定性测试

Performance sability tests

Sability-Tests

在最佳和最大并发数的状态上,测试长时间内系统的稳定性

性能崩溃测试

Performance crash test

Crash-Test

在最大并发数的基础上,不断增加并发数,获得系统失败率大于10%或者系统崩溃时的状态

单一业务

Single business

Single-Business

模拟的同一时间点并发某个业务

混合业务

Mixed business

Mixed-Business

模拟的同一时间段并发不同的业务

虚拟用户

Virtual users

Vuser

Loadrunner模拟的用户代称

集合点

Rendezvous

Rendezvous

Loadrunner中模拟所有用户在某一刻请求某一个事务

点击率

Hits/Sec

Hits/Sec

每秒钟Vuser向服务器请求的请求数量

服务器网络流量

Server network traffic

Throughput

应用服务器向客户端发送的下行宽带流量

事务

Transactions

Transactions

Loadrunner中定义的某笔业务名称

每秒事务数

Transactions per second

TPS

系统每秒钟一共处理了多少笔业务

每分钟事务数

Transactions per Minute

TPM

系统每分钟一共处理了多少笔业务

24小时事务数

Transactions per 24hours

TP24H

系统24小时共处理了多少笔业务

总事务数

Total transactions

TTpass

在测试期间,系统一共处理了多少笔业务

事务通过率

Transaction through rate

Tpass%

在测试期间,系统一共正确处理了多少笔业务

平均响应时间

The average response time

ART

某笔业务处理完毕所需要的时间

90%响应时间

The Transaction :90% of the peak response time

90%RT

所有业务所需要的时间90%的比例都比此值小的时间,也就是90%的数据中所拥有的峰值。90%响应时间,可能表述为75%、80%等

最大响应时间

The Transaction :Max. Response time

Max RT

最大响应时间,即所采集数据中的最大值

标准差

Standard deviation

Std.

标准差,标准差越大,说明该笔业务的响应时间越不稳定,越小越稳定,但如果为0表示系统或脚本存在问题

CPU使用率

CPU usage

CPU%

CPU的使用率,大于80%表示繁忙

可用物理内存

Available physical memory

AMB%

可用物理内存剩余量,应占所有的20%

磁盘使用率

Disk Usage

Disk%

磁盘使用率,大于80%表示繁忙

服务器线程数

The number of server threads

Threads

系统所使用的线程数

 



=================================

Memory:

·Available Mbytes

简述:可用物理内存数.如果Available Mbytes的值很小(4 MB或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。

参考值:4 MB或更小,至少要有10%的物理内存值

 

·Page/sec (Input/Out)

简述:为了解析硬页错误,从磁盘取出或写入的页数。

一般如果Page/sec持续高于几百,那么您应该进一步研究页交换活动。有可能需要增加内存,以减少换页的需求(你可以把这个数字乘以4k就得到由此引起的硬盘数据流量)。Pages/sec的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。

参考值:

 

·Page Fault

简述:处理器每秒处理的错误页(包括软/硬错误)。当处理器向内存指定的位置请求一页(可能是数据或代码)出现错误时,这就构成一个Page Fault。如果该页在内存的其他位置,该错误被称为软错误(用Transition Fault/sec记数器衡量);如果该页必须从硬盘上重新读取时,被称为硬错误。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。

参考值:

 

·Page Input/sec

简述:为了解决硬错误页,从磁盘上读取的页数。

参考值:

 

·Page reads/sec

简述:为了解决硬错误页,从磁盘上读取的次数。解析对内存的引用,必须读取页文件的次数。阈值为>5.越低越好。大数值表示磁盘读而不是缓存读。

参考值:

 

·Cache Bytes

简述:文件系统缓存,默认情况下为50%的可用物理内存。如IIS5.0运行内存不够时,它会自动整理缓存。需要关注该计数器的趋势变化。该指标只显示最后一次观察的值,它不是一个平均值。

参考值:

 

 ·pool paged bytes

简述: 指在分页池中的字节 数,分页池是系统内存中可供对象使用的一个区域。

 

·pool nonpaged bytes

简述:指非分页池中的 字节数,非分页池中的字节数如果持续增加表示可能存在内存泄漏问题,需要进一步结合其他指标,来判断是否存在严重的内存泄漏还是其他原因引起的非分页池增加。

 

 

 

 

·内存泄露

简述:

如果您怀疑有内存泄露,请监视Memory\\ Available BytesMemory\\ Committed Bytes,以观察内存行为,并监视您认为可能在泄露内存的进程的Process\\Private BytesProcess\\Working SetProcess\\Handle Count。如果您怀疑是内核模式进程导致了泄露,则还应该监视Memory\\Pool Nonpaged BytesMemory\\ Pool Nonpaged AllocsProcess(process_name)\\ Pool Nonpaged Bytes

参考值:

 

Process

·Page Faults/sec

简述:将进程产生的页故障与系统产生的相比较,以判断这个进程对系统页故障产生的影响。指每秒钟出错页面的平均数量。

参考值:

 

·Private Bytes

简述:此进程所分配的无法与其它进程共享的当前字节数量。如果系统性能随着时间而降低,则此计数器可以是内存泄漏的最佳指示器。

参考值:

 

·Work set

简述:处理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集。

参考值:

 

Processor

·% Processor Time

简述:CPU利用率,可以查看处理器是否处于饱和状态,此值的最佳范围为75%-95%,如果在性能监控过程中此值过低,表示CPU尚未充分利用,还 需要更大的负载压力,如果该值持续超过95%,就表示当前系统的瓶颈为CPU,此时可以考虑增加一个处理器或换一个性能更好的处理器。

参考值:

 

·ProcessorQueue Length

简述:判断CPU瓶颈,如果processor queue length显示的队列长度保持不变(>=2)并且处理器的利用率%Processor time超过90%,那么很可能存在处理器瓶颈.如果发现processor queue length显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈.

参考值:

 

·interrupt/sec

简述:指处理器接收并维护硬件中断的平均值,单位是事件数/秒,这 个值说明了能够产生中断的设备(如系统时钟、鼠标、磁盘驱动器、网卡和其他外部设备)的活动情况,这些可以产生中断 的设备通常在完成了一项任务时中断处理器。

 

·%user time

简述:指处理器处于用户模式的时间百分比,也就是非内核操作用户进程所耗费的CPU时间。其值可以表示为CPU数据库操作 (如查找、排序等活动)耗费的时间,如果该值很高,可以考虑增加索引、使用简单的表连接、水平分割大表格等方法来降低该值。

    计算机处理器有用户模式和特权模式两种方式,用户模式是为应用程序、环境分系统和整数分系统设计的有限处理模式;特权模式是为操作系统组 件设计的,允许其直接访问硬件和所有内存。操作系统将应用程序线程转换成特权模式以访问操作系统服务器。

 

·%privileged Time

简述:指处理线程执行代码所花时间的百分比。如果该参数值和“physical disk”值一直很高,表明I/O有问题,可考虑采用更快的硬盘系统。

 

·%interrupte time

简述:处理器在实例间隔期间接受和服务硬件中断的时间。此 值间接表示了产生中断的设备的活动,如系统时钟、鼠标、磁盘驱动器、网卡和其他外部设备,这些设备通常会中断处理器。

 

·%DPC time

简述:指在实例间隔期间,处理器用在延缓程序调用(DPC)接收和提供服务的时间百分比,就是消耗在网络处理上的时间,该值越低越好。由于DPC是以特权模式执行的,DPC时间的百分比为特权时间百分比的一部分。

 

·Queue Length

简述:指跟踪服务器工作队列当前长度的计数器,该数值会显示出处理器瓶颈。队列长度持续大于2则表示可能出现处 理器拥塞。

 

·

 

 

Physical Disk

·%DiskTime

简述:指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。

正常值<10,此值过大表示耗费太多时间来访问磁盘,可考虑增加内存、更换更快的硬盘、优化读写数据的算法。若数值持续超过80 (此时处理器及网络连接并没有饱和),则可能是内存泄漏。

参考值:

 

·CurrentDiskQueueLength

简述:读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。(磁盘数1.5-2)

参考值:

 

·Avg.Disk Queue

Length

Avg.Disk Read

QueueLength

Avg.Disk Write

QueueLength

Disk Read/sec

Disk Write/sec

简述:读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。

磁盘瓶颈判断公式:

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

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

参考值:

Avg.DiskQueue Length正常值<0.5,此值过大表示磁盘IO太慢,要更换更快的硬盘。

 

综合判断:

1、处理器队列堵塞判断方法:如果Processor queue length大于2,而处理器利用率一直很低,则存在处理器堵塞。

2、处理器瓶颈判断方法: 排除内存因素后,如果%processor time持续大于90%,并且%interrupt time的值持续大于15%,同时网卡和硬盘的值比较低,可以断定处理器负荷过重,无法满足业务增长需要,处理器是系统瓶颈点。

 

3. 监视内存不足的状况,可以通过 page/sec,Available Mbytespage read/secpage faults/sec等计数器的指标进行监控,还可以通过使用页面交换的频率来衡量。

页面交换是使用称为页面的单位,将固定大小的代码和数据块从RAM移动到磁盘的过程,从而释放暂时不使用的空间,这些页面文件就是操作系统用来虚拟内存的硬盘空面。操作系统对于虚拟内存主要设置两点,即内存页面文件的大小和页面文件存放的位置,内 存页面文件的大小就是设置虚拟内存最小和最大空间量,而页面位置则是设置虚拟内存使用哪个分区中的硬盘空间。

频繁的页面交换将降低系统性能,如果系统页交换频繁,说明内存不足。通过调优配置减少页交换,将显著提高系统响应速度。

 

4. 通过pages/sec指标判断是否存在内存问题,如果pages/sec持续高于几百,则有可能需要增加内存,以减少换页的需求,此时还应该进一步研究 页交换活动。如果pages/sec指标过高(几百),而硬盘数据流量不高(几百kb/s)则可确定是内存不足问题,如果pages/sec指标较高(几百),而此时硬盘数据流量也很高(几千KB /S),则可以判定是磁盘问题。

5.通过 available mbytes来判断是否存在严重内存泄漏问题,如果该值很小(<4M,则说明计算机上总的内存可能不足,或者某个程序始终占用而没有释放内存,系统存在严重的内存泄漏问题。

6.如果页面读取操作速率page reads/sec指标的值很低,同时%disk timeavg.disk queue length的值却很高,则确定为磁盘瓶颈,但如果Avg.sidk queue length增加的同时page reads/sec页面读取速率指标并未降低,则确定为内存不足。

 

注:在run里面输入perfmon即可打 开本机监视器


判断CPU瓶颈,如果processor queue length显示的队列长度保持不变(>=2)并且处理器的利用率%Processor time超过90%,那么很可能存在处理器瓶颈.如果发现processor queue length显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈.

Full Scans/sec

全表扫描,如果该值持续较大或偶尔较大,表示可能存在堆表扫描。

Number of Deadlocks/sec

死锁的数量,应该始终保持为0。

Average Wait Time (ms)

锁等待解除时间,平均>25ms,可能需要优化SQL


推荐阅读
author-avatar
敬炜8965肀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有