性能测试监控点一览.docx
- 文档编号:30073230
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:26
- 大小:26.10KB
性能测试监控点一览.docx
《性能测试监控点一览.docx》由会员分享,可在线阅读,更多相关《性能测试监控点一览.docx(26页珍藏版)》请在冰豆网上搜索。
性能测试监控点一览
名称(Object)
计数器(Counter)
功能
描述
Sample
Processor
记录系统中芯片的负载情况。
由于普通程序并不刻意绑定到某个具体CPUh执行,所以在多CPU机器上观察TotalInstanee也就足够了。
处理器出现瓶颈可能是由于处理器本身没有足够的能力,或由于应用程序效率低下导致处理器能力不足。
必须仔细检查处理器是否由于物理内存不足而不得不花费大量时间来执行分页。
CPU不像收款员,它不会干坐在那里等待下一个任务的到来,而必须总有一些事情去做。
就像我们打开电脑,不管是否进行操作,它的电源线上始终有电流流过,为了保证CPU始终有事可做,当它没有其他任务时,
Windows便为它准备了另一件事,就是调用“空闲进程”(也就是我们以前曾经介绍过的
“SystemIdleProcess",在系统没有什么操作时,它常常会显示为99%或100%)。
实际上,系统在计算处理器时间时,并不是对每个不同的
判断应用程序是否存在处理器瓶颈的方法:
女口果ProcessorQueueLength显示的队列长度保持不变(>=2)个并且处理器的利用
率%ProcessorTime超过90%,那么很有可能存在处理器瓶颈。
如果发现ProcessorQueueLength显示的队列长度超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。
如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(Context
Switches/sec显示的上下文切换次数比较大),那么就会占用大量的系统资源。
如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过咼同时还可以比较ContextSwitches/sec
和%PrivilegedTime来判断上卜文切换是否过量。
如果后者的值超过40%,且上下文切换的速率也很高,那么应该检查为什么会产生这样咼的上下文切换。
线程运行时间进行统计,而只是对空闲进程的运行时间进行计算,然后只要简单地用100%减去空闲进程的时间,就得到了
“%ProcessorTime”。
%ProcessorTime
记录所有进程带来的芯片负载情况。
该计数器跟
Process下的%ProcessorTime的意义一样,不过这里记录的是所有进程带来的芯片,而不是针对具体某一个进程。
通过把这个计数器跟
Process下的同名计数器一起比较,就能看出系统的高CPU问题是否是由于单一的某个进程导致的。
如果一个或多个处理器的该数值持续超过90%,则表示此测试的负载对于目前的硬件过于沉重。
排除内存因素,女口果该计数器的值比较大(>75%),而同时网卡和硬盘的值比较低,那么可以确定CPU瓶颈。
%UserTime
非内核操作损耗的CPU时间。
理想情况下,大多CPU时间应该用在这里。
此值过高(长期大于50%)说明程序中有大量算法或者复杂的算法。
%PrivilegedTime
CPU内核时间)是在特权模式下处理线程执行代码所花时间的百分比。
当调用Windows系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。
在用户模式执行的线程无法访问这些数据。
对系统的调用可以是直接的(explicit)或间接的
(implicit),例如页面错误或中断。
不像某些早期的操作系统,Windows除
了使用用户和特权模式的传统保护模式之外,还使用处理边界作为分系统保护。
%ldleTime
%C1Time
%C2Time
%C3Time
%lnterruptsTime
%DPCTime
延迟过程处理时间百分比。
处理器在网络处理上消耗的时间,该值越低越好。
在多CPU中,不能大于50%,越低越好
如果这个值大于50%
并且Processor:
%ProcessorTime非常高,加入一个网卡可能会提高性能,提供的网络已经不饱和。
Interrupts/sec
如果处理器使用率超过90%且%
InterruptTime大于15%,则处理器可能负何过重,并发生中断。
DPCQueued/sec
DPCRate
C1Transitions/sec
C2Transitions/sec
C3Transitions/sec
Process
Processobject中的计数器可以针对目标进程分析内存,CPU,线程数目和handle数目。
首先要确定目标进程,然后分析目标进程的卜面一些计数器。
如果进程异常或未经优化,服务器性能将会受到严重影响。
线程和句柄泄漏最终会使服务器速度减慢,过度使用处理器会使服务器变为爬行速度。
在诊断与进程相关的瓶颈时,需要使用以下计数器。
%ProcessorTime
该计数器是
当进程繁忙的时候,
该进程占用
CPU资源的指标。
CPU平均占用率应该在80%以内。
如果超过该数值,程序可以认为发生了highCPU的问题。
另外一种问题是CPU波动幅度大。
虽然平均占用率不高,但是上下跳动频繁。
在某一个短时间段里面,会有连续高CPU的情况出现。
%UserTime
%PrivilegedTime
PrivateBytes
记录当前通过
VirtualAlloc
APICommit的Memory数量。
无论是直接调用API申请的内存,
被HeapManager
申请的内存,或者
是CLR的
managedheap,都算在里面。
跟HandleCount—样,如果在整个程序周期内总体趋势是连续向上,说明有Memory
Leak。
VirtualBytes
记录当前进程申请成功的用户态总内存地址。
包括DLL/EXE占用的地址和通过VirtualAllocAPIReserve的MemorySpace数量,所以该计数器应该总大于PrivateBytes。
一般来说,VirtualBytes跟PrivateBytes的变化大致一致。
由于内存分片的存在,Virtual
Bytes跟PrivateByes一般保持一个相对稳定的比例关系。
当VirtualBytes跟PrivateBytes的比例关系大于2的时候,程序往往有比较严重的内存地址分片。
WorkingSet
PageFaults/sec
HandleCount
记录当前进程使用的
kernelobjecthandle(句柄)数量。
Kernelobject是重要的系统资源。
当程序进入稳定运行状态的时候,
HandleCount数量也应该维持在一个
如果发现Handle
Count在整个程序周期内总体趋势是连续向上,可以考虑程序是否有HandleLeak。
如果此计数器的值大
稳定的区间。
于10,000,则表示可能存在句柄泄漏。
10ReadBytes/sec
10WriteBytes/sec
IODataBytes/sec
IOOtherBytes/sec
PageFileBytes
ThreadCount
测量某个进程中目前处于活动状态的线程数。
如果在最小线程数和最大线程数之间此数值超过500,则可能存在线程泄漏。
PriorityBase
ElapsedTime
IDProcess
记录目标进程的进程ID。
进程ID是用来观察程序是否有重启发生。
比如ASP.NET工作进程可能会自动回收。
由于进程名都相同,只有通过进程ID来判断是否进程有重新启动现象。
如果ID有变化,考虑程序是否发生崩溃或者Recycle。
CreatingProcessID
PoolPagedBytes
PoolNonpagedBytes
IOReadOperations/sec
IOWriteOperations/sec
IODataOperations/sec
IOOtherOperations/sec
WorkingSet-Private
VirtualBytesPeak
WorkingSet-Peak
PageFileBytes-Peak
Memory
记录当前系统中整体内存的统计信息。
内存不足通常是由于RAM不足、内存泄漏或内存开关被放置在boot.ini中而导致的。
在讨论内存计数器之前,我先介绍一下/3GB开关。
内存越多,磁盘I/O活动就越少,而应用程序的性能也会因此得以改善。
在
结合AvailableMbytes和CommittedBytes两个计数器可以观察到:
1)两者相加可以粗略估计系统总体可用内存多少,便于估计物理配置
2)当AvailableMbytes少于100MB的时候,说明系统总体内存吃紧,会影响到整个系统所有进程的性能。
应该
WindowsNT?
中弓1入了/3GB开关,用于为用户模式程序提供更多的内存。
Windows使用4GB的虚拟地址空间(与系统拥有的物理RAM大小无关)。
默认情况下,下面的2GB是为用户模式程序保留的,而上面的2GB是为内核模式程序保留的。
通过使用/3GB开关,可将3GB用于用户模式进程。
当然,这样做的代价是内核内存仅剩1GB的虚拟地址空间。
这可能会产生一些问题,因为PoolNon-PagedBytes、PoolPagedBytes、FreeSystemPageTablesEntries和桌面堆都争用这1GB的空间。
因此,必须在环境中进行全面测试后才能使用/3GB开关。
如果怀疑自己遇到了与内存相关的瓶颈,可以考虑一下这一点。
考虑增加物理内存或者监察内存泄露
3)通过比较
Process'PrivateBytes跟VirtualBytes,便于进一步确认是否有内存泄露,判断内存泄露是否是某一单个进程导致。
Page/sec推存00-20
(如果服务器没有足够的内存处理其工作负荷,此数值将一直很冋。
如杲大于80,表示有冋题)。
这些计数器的值比较低,说明Web服务器响应请求比较快,否则可能是服务器系统内存短缺引起(也可能是缓存太大,导致系统内存太少)。
PageInput/sec的值可以衡量出硬错误页发生的速率,通常它的值会大于或者等于
PageReads/sec
如果您怀疑有内存泄露,请监视Memory'AvailableBytes和Memory'CommittedBytes,以观察内存行为,并监视您认为可能在泄露内存的进程的
Process'PrivateBytes、Process'WorkingSet禾口Process'Handle
Count。
如果您怀疑是内核模式进程导致了泄露,则还应该监视
Memory'Pool
NonpagedBytes、
Memory'PoolNonpagedAllocs禾口Process(process_name)'PoolNonpagedBytes。
CacheFults/sec
AvailableMBytes
记录当前剩余的物理内存数量。
如果此值低于总物理RAM的5%,则意味着内存不足,分页活动可能会增加。
要解决此问题,应增加更多的内存。
AvailableBytes
AvailableKBytes
CommittedBytes
记录所有进
程commit的
内存数量
推存不超过物理内存的75%。
CommitLimit
WriteCopies/sec
DemandZeroFults/sec
PageFaults/sec
记录Hard和SoftPagefaults
阈值为5.越低越好。
大数值表示磁盘读而
不是缓存读。
TransitionFaults/sec
记录为解决软分页错误而所做的内存中
transition速率。
Pages/sec
测量为解决硬分页错误而从磁盘读取页或将页写入磁盘的速率。
如果“Pages/sec'的值为12~20或更大,表明系统使用内存页面文件比较频繁。
如果此值大于1,000,则可能会由于过度分页而出现内存泄漏。
一般如果pages/sec持续高于几百,那么您应该进一步研究页交换活动。
有可能需要增加内存,以减少换页的需求(你可以把这个数字乘以4k就得到由此引起的硬盘数据流量)。
Pages/sec的值很大不一定表明内存有冋题,
而可能是运行使用内存映射文件的程序所致。
PagesInput/sec
为了解决硬错误页,从硬盘上读取的页数
PageReads/sec
为了解决硬错误,从硬盘读取的次数。
如果PageReads/Sec比率持续保持为5,表
示可能内存不足。
PageWrites/sec
将页写向磁盘以释放物理内存空间的时间数。
只有当页在物理内存中被改变的时候,将页写入磁盘,这样,它们更有可能含有数据,而不是代码。
CacheOutput/sec
PoolPagedBytes
测量分页缓冲池的大小
(单位为字节)。
如果此值大于250MB
(使用/3GB开关时大于170MB),则可能存在内存泄漏。
一个典型的事件ID2019会记录在系统事件日志中。
PoolNon-pagedBytes
测量非分页缓冲池的大小(单位为字节)。
在这一系统内存区域中存储的是无法写入磁盘但只要已分配就必须保留在物理内存中的对象。
在访问数比较固定的情况下,此值是比较固定的,如果访问数逐渐增加,该值会缓慢的增加。
如果此值大于175MB(使用/3GB开关时大于100MB),则可能存在内存泄漏。
一个典型的事件ID2019会记录在系统事件日志中。
FreeSystemPageTable
Entries
表示系统当前并未使用的页表项数量
如果此数字小于5,000,则很可能存在内存泄漏。
这三个计数器(Pool
PagedBytes,PoolNon-pagedBytes)可以衡量核心态空闲内存的数量
CacheBytes
表示用于文件系统缓存的内存数量。
默认情况下为50%的可用物理内存。
如果此值大于
200MB,则可能存
在磁盘瓶颈。
CacheBytesPeak
PoolePagedResident
Bytes
SystemCodeTotalBytes
SystemCodeResident
Bytes
SystemDriverTotal
Bytes
SystemDriverResidentBytes
SystemCacheResident
Bytes
%CommittedBytesIn
Use
测量
CommittedBytes与CommitLimit的比值。
它测量的是使用中的虚拟内存数量。
如果此数值大于80%,则表示内存不足。
对此最直接的解决方案是增加更多的内存。
TransitionPagesRePurpose/sec
Free&ZeroPageList
Bytes
ModifiedPageListBytes
StandbyCacheReserveBytes
StandbyCacheNormalPriorityBytes
StandbyCacheCore
Bytes
System
记录系统中一个整体的统计信息。
不区分Instanee。
通过比较Systemobject下的counter和其他counter的变化趋势,往往能看出一些线索。
ContextSwitch/sec
标示系统中整体线程的调度,切换频率。
Context
Switches/sec指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。
当正在运行的线程自动放弃处理器时出现上下文转换,由一
看到高CPU的时候,
一疋要跟Context
Switch一起比较。
如果两者有相冋的变化趋势,高CPU往往是由于contention导致的,而不是死循环。
如果切换次数到
个有更咼优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以使用执行或分系统服务。
它是在计算机上的所有处理器上运行的所有线程的Thread:
ContextSwitches/sec的总数并且用转换数量衡量。
5000*CPU个数和10000*CPU个数中,说明它忙于切换线程而不是处理业务。
线程切换是开销比较大的操作。
频繁的线程切换导大量CPU周期被浪费。
ExceptionDispatches/sec
标示系统中异常派发,处理的频繁程序。
跟线程切换一样,异常处理也需要大量的CPU开销。
分析方法跟ContextSwitch雷同。
FileDataOperations/sec
记录当前系统中磁盘文件读写的频繁程度。
通过观察该计数器跟其他性能指标的变化趋势,通常能够判断磁盘文件操作是否是性能瓶颈。
%ProcessorQueue
Length
指处理列队中的线程数。
即使在有多个处理器的计算机上处理器时间也会有一个单列队。
不象磁盘计数器,这个计数器仅计数就绪的线程,而不计数运行中的线程。
只记录那些准备执行但仍处于等待的线程,不是那些正在运行的线程。
当该计数器的值大于CPU数量总数+1时,说明处理器阻塞。
微软给出的Win2000
下的建议值如下:
多核系统(《=3cpu)推存阀值为1-3,4核及以上的,阀值为4-12,但随着硬件的更新换代,这些值可以适当放松。
FileReadOperations/sec
FileWriteOperations/sec
FileControl
Operations/sec
FileReadBytes/sec
FileWriteBytes/sec
FileControlBytes/sec
SystemCalls/sec
SystemUpTime
Processes
Threads
AlignmentFixups/sec
FloatingEmulations/sec
%RegistryQuotaInUse
Network
Interface
网络瓶颈顾名思义会影响服务器通过网络发送和接收数据的能力。
原因可能是服务器的网卡存在冋题,或者网络处于满负荷状态,需要对其进行分段。
BytesTotal/sec
测量通过每个网络适配器发送和接收字节(包括分帧字符)的速率。
判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。
如果发现使用的接口超过70%,则表示网络处于满负荷状态。
对于一个100-Mbps的NIC而言,使用的接口是8.7MB/sec
(100Mbps=100000kbps=12.5MB/sec*70%)。
出现这种情况时,可能需要添加一个速度更快的网卡或对网络进行分段。
CurrentBandwidth
OutputQueueLength
测量输出数据包队列的长度(以数据包为单位)。
如果此值大于2,则表示网络处于满负荷状态。
可通过添加一个速度更快的网卡或对网络进行分段来解决此问题。
PhysicalDisk
由于磁盘系统存储和处理服务器上的
每磁盘的I/O数=(读次数+4*写次数)/磁盘
程序和数据,因此影响磁盘使用情况和运行速度的瓶颈会极大地影响服务器的整体性能。
个数
DiskReads/sec
物理磁盘上每秒钟磁盘读的次数。
两者相加,应小于磁盘设备最大容量。
否则增加磁盘
DiskWrites/sec
物理磁盘上每秒钟磁盘写的次数。
两者相加,应小于磁盘设备最大容量。
否则增加磁盘
Avg.Disksec/Read
测量从磁盘读取数据的平均时间(以秒为单位)。
如果此数字大于25毫秒(ms),则意味着从磁盘读取数据时磁盘系统发生了延迟。
对于托管
SQLServer?
和
ExchangeServer的关键任务服务器,可接受的阈值要低得多,约为10
ms。
最合理的解决方案是将当前磁盘系统更换为速度更快的磁盘系统。
Avg.Disksec/Write
测量将数据写入磁盘的平均时间(以秒为单位)。
如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 测试 监控 一览