一、 系统(System)
Context Switches/sec(System)
Context Switches/sec
(每秒上下文切换次数)
是指计算机上的所有处理器从一个线程切换到另一个线程的综合速率。当正在运行的线程主动放弃处理器时发生上下文切换,优先级更高的就绪线程将占先,或在用户模式和特权
(内核) 模式间切换以使用执行或子系统服务。它是在计算机所有处理器上运行的所有线程的 ThreadContext Switches/sec
(每秒线程/上下文切换次数)
总和,可用切换次数来计算。系统和线程对象上有上下文切换计数器。此计数器显示最后两次采样期间观察到的值差除以采样间隔时间所得到的值。
Processor Queue Length (System)
Processor
Queue Length 是指处理器队列的瞬时长度 (以线程数为单位)。如果您不同时**线程计数器,则此计数器始终为
0。所有处理器都使用一个队列,线程在该队列中等待处理器周期。此长度不包括当前正在执行的线程。一般情况下,如果处理器队列的长度一直超过二,则表示处理器堵塞。此值为瞬时计数,不是一段时间的平均值。(参考值:<=处理器个数+1)
注
研究系统处理器瓶颈,查看SystemProcessor
Queue Length计数器的值,当该计数器的值大于CPU数量的总数1时,说明产生了处理器阻塞。在处理器的%Process
Time值很高时一般都伴随着处理器阻塞,但产生处理器阻塞时,Processor\%Process
Time计数器的值并不一定很大,此时就是必须查看处理阻塞的原因。
%DPC Time是另一个需要关注的内容,该计数值越低越好。在多处理器系统中,如果该值大于50%并且Processor\%Processor Time值非常高,则考虑加入一个网卡来提高性能。
File Data Operations per second(System)
File Data Operations per second 是指计算机向文件系统设备发出读写操作的速率。它不包括文件控制操作。
二、 处理器 (Processor_Total)
%Processor Time(Processor_Total)
CPU利用率,该计数器最为常用,可以查看处理器是否处于饱和状态,如果该值持续超过 95%,就表示当前系统的瓶颈为CPU,可以考虑增加一个处理器或更换一个性能更好的处理器。(参考值:<80%)
注
查看每个CPU的Processer\%Processor Time和Processor\%User Time 和 Processor\%Privileged Time
Processor\%User Time 是指系统的非核心操作消耗的CPU的时间,如果该值较大,可以考虑是否能通过算法优化等方法降低该值。如果服务器是数据库,Processor\%User Time 值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。
% Interrupt Time(Processor_Total)
%
Interrupt Time (中断时间百分比)
是指处理器在采样间隔期间接收和维修硬件中断的时间。该值是生成中断的设备(如系统时钟、鼠标、磁盘驱动器、数据通信线路、网卡和其他外设)活动的间接指标。这些设备通常在完成任务或需要引起注意时中断处理器。在中断期间,正常的线程执行将暂停。大多数系统时钟每
10 毫秒中断一次处理器,创建中断活动背景。在中断期间,暂停正常的线程执行。此计数器显示平均繁忙时间在采样时间内所占的百分比。
% Privileged Time(Processor_Total)
% Privileged Time (特权时间百分比) 是指进程中的线程在特权模式下执行代码所花时间的百分比。在调用 Windows 系统服务时,该服务通常在特权模式下运行,以便访问系统专有数据。在用户模式下执行的线程无法访问这些数据。对系统的调用可以是显式的,也可以是隐式的,例如页面错误或中断。与某些早期操作系统不同,Windows 除了使用用户模式和特权模式这种传统保护方法外,还使用进程边界来保护子系统。除了在进程中的特权时间内出现,Windows 代表应用程序执行的某些操作还可能出现在其他子系统进程中。
Interrupts/sec (Processor_Total)
Interrupts/sec
是指处理器平均每秒接收和处理硬件中断的数量。这不包括单独计数的
DPC。此值是生成中断的设备(如系统时钟、鼠标、磁盘驱动器、数据通信线路、网络接口卡和其他外围设备)活动的间接指示。这些设备在完成任务或需要注意时,通常会中断处理器。中断期间,正常执行的线程将挂起。大多数系统时钟每隔
10 毫秒会中断一次处理器,从而创建后台中断活动。该计数器显示最后两次采样中观察到的值再除以采样间隔持续时间之后的差。
%DPC Time
处理器在网络处理上消耗的时间,该值越低越好。
三、 进程 (Process_Total)
Private Bytes (Process_Total)
private Bytes:进程无法与其他进程共享的字节数量。该计数器的值较大时,有可能是
内存泄露的信号
Work set:最近处理线程使用的内存页
进程分析方法
1>.查看进程的%Processor Time值,每个进程%Processor Time值反映出进程所消耗的处理时间。将不同进程所消耗的处理器时间进行对比,可以容易地看出具体哪个进程在性能测试过程中消耗了最多的处理器时间,从而可以据此针对应用进行优化
2>.查看每个进程产生的页面失效
3>.了解进程的ProcessPrivate Bytes
四、 内存 (Memory)
Available Mbytes(Memory)
Available
MBytes (可用内存 MB 数) 是指可供计算机上的进程运行时使用的物理内存量,以 MB,而不是 MemoryAvailable
Bytes (可用内存字节数)
中使用的字节为单位。它是通过将填零内存、可用内存和备用内存列表上的空间量相加进行计算。可用内存是指可以使用的内存;
填零内存是指用零填充以防止后面的进程看到前面进程所用数据的内存页; 备用内存是指在磁盘路径上从进程工作区 (其物理内存) 释放,但仍可以被重新调用的内存。此计数器不显示平均值,只显示最后观察到的值。(参考值:>=10%)
注
要监视内存不足的状况,请从以下的对象计数器开始:
• Memory Available Bytes
• Memory Pages/sec
Cache Bytes(Memory)
Cache
Bytes (缓存字节数) 是 MemorySystem Cache Resident Bytes
(内存/系统缓存驻留字节数)、MemorySystem Driver Resident Bytes
(内存/系统驱动程序驻留字节数)、MemorySystem Code Resident Bytes (内存/系统代码驻留字节数) 和
MemoryPool Paged Resident Bytes (内存/分页池驻留字节数)
计数器的总和。此计数器不显示平均值,只显示最后观察到的值。
Committed Bytes(Memory)
Committed Bytes (确认字节数) 是指以字节为单位的确认虚拟内存量。确认内存是指在磁盘分页文件上预留了空间的物理内存。每个物理盘上可以有一个或多个分页文件。此计数器不显示平均值,只显示最后观察到的值。
System Cache Resident Bytes (Memory)
System
Cache Resident Bytes (系统缓存驻留字节数) 是文件系统缓存中可分页操作系统代码的大小
(以字节为单位)。该值只包括当前的物理页面,不包括当前未驻留的虚拟内存页面。它等于任务管理器中显示的系统缓存值。因此,该值可能会比文件系统缓存使用的实际虚拟内存量要小。该值是
MemorySystem Code Resident Bytes (内存/系统代码驻留字节数)
的一部分,后者表示当前在物理内存中的所有可分页操作系统代码。此计数器不显示平均值,只显示最后观察到的值。
Pool Nonpaged Bytes( (Memory)
Pool Nonpaged Bytes 是指非分页池中的字节数,非分页池是一种系统内存区域,操作系统组件在完成其指定任务时在此获得空间。非分页池页面不能退出到分页文件,但是这些页面一经分配就可一直位于主内存中。
Pool Paged Bytes (Memory)
Pool
Paged Bytes (分页池字节数) 是指分页池的大小 (以字节为单位)。分页池是系统内存 (操作系统使用的物理内存)
中的一个区域,用于存放不使用时可以写入磁盘的对象。MemoryPool Paged Bytes (内存/分页池字节数) 的计算方式与
ProcessPool Paged Bytes (进程/分页池字节数) 的不同,因此可能不等于 ProcessPool Paged
Bytes\_Total (进程/分页池字节数/总数)。此计数器不显示平均值,只显示最后观察到的值。
Pages/sec (Memory)
Pages/sec
是指为解决引用时不在内存中的页面的内存引用问题,从磁盘读取的或写入磁盘的页面数。这是 Pages Input/sec 和 Pages
Output/sec
的和。此计数器中包括代表系统高速缓存访问应用程序文件数据的分页流量。此值还包括传递到/来自非高速缓存映射内存文件的页数。如果您关心内存压力过大问题
(即系统失效) 和可能产生的过多分页,则这是值得考虑的主要计数器。(参考值:00~20)
Page Input/sec
表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec)
Page Reads/sec (Memory)
Page
Reads/sec (每秒页面读取次数)
是指为解决页面硬故障而读取磁盘的速率。它显示读取次数,而不考虑每次读取时检索的页面数。当一个进程引用虚拟内存中的页面,而此页面不在工作集中或位于物理内存中的其他位置,并且必须从磁盘检索时,就会发生页面硬故障。此计数器是引起系统级延迟的故障的主要指标。它包括为解决文件系统缓存
(通常由应用程序请求) 和非缓存映射内存文件中的故障而执行的读取操作。比较 MemoryPages Reads/sec
(每秒内存/页面读取次数) 与 MemoryPages Input/sec (每秒内存/页面输入次数)
的值可以确定每个操作读取的平均页面数量。
Page Faults/sec (Memory)
Page Faults/sec
是指处理器中页面错误的计数。当进程引用虚拟内存页面,而该页面不在其位于主内存的工作集当中时,将出现页面错误。如果某页面位于待机列表中(因此它已位于主内存中),或者它正在被共享该页面的其他进程所使用,则页面错误不会导致该页从磁盘中取出。
五、 物理盘 (PhysicalDisk_Total)
Disk Transfers/sec (PhysicalDisk_Total)
Disk Transfers/sec (每秒磁盘传输率) 是指磁盘上的读写速率。
Split IO/Sec (PhysicalDisk_Total)
Split IO/Sec (每秒 IO 分割率) 报告磁盘的 I/O 分割成多个 I/O 的速率。分割 I/O 可能是因为请求的数据太大,无法放入单个 I/O 或者因为磁盘碎片太多。
Avg. Disk Queue Length (PhysicalDisk_Total)
Avg. Disk Queue Length (平均磁盘队列长度) 是指在采样间隔期间所选磁盘的平均排队读取和写入请求数。(<=磁盘数的2倍)
Avg. Disk Bytes/Transfer (PhysicalDisk_Total)
Avg. Disk Bytes/Transfer (平均磁盘传送字节数) 是指在写入或读取时传入或传出磁盘的平均字节数。(<=磁盘数的2倍)
%Idle Time(PhysicalDisk_Total)
% Idle Time (空闲时间百分比) 报告采样间隔期间磁盘空闲时间的百分比。
%Disk Time(PhysicalDisk_Total)
Disk Time 是指选定的磁盘驱动器忙于处理读或写请求的已用时间所占百分比。
%Disk Time:表示磁盘驱动器为读取或写入请求提供服务所用的时间百分比,如果只
有%Disk Time比较大,硬盘有可能是瓶颈.
注
磁盘I/O分析方法
1>.计算每磁盘的I/O数。每磁盘的I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。
2>.与ProcessorPrivileged Time合并进行分析。如果在Physical Disk计数器中,只有%Disk Time值较大,其他值都比较适中,则硬盘可能会是瓶颈。若几个值都比较大,且数值持续超过80%,则可能是内存泄露。
3>.根据Disk sec/Transfer进行分析。一般来说,定义Transfer数值小于15毫秒为优秀,介于15~30毫秒之间为良好,30~60毫秒之间为可接受,超过60毫秒则需要考虑更换硬盘货硬盘的RAID方式
六、 逻辑盘 (LogicalDisk_Total)
Free Megabytes (LogicalDisk_Total)
Free Megabytes (可用空间 MB 数) 是指磁盘驱动器上尚未分配的空间大小 (以 MB 为单位)。1 MB = 1,048,576 字节。
七、 服务(Server)
Pool Nonpaged Bytes(Server)
服务器正在使用的不可分页计算机内存的字节数。该值对于确定 Windows NT 注册表中 MaxNonpagedMemoryUsage 的值非常有用。
Bytes Total/sec (Server)
服务器已通过网络收发的字节数。此值可全面说明服务器的繁忙程度。
Pool Paged Bytes(Server)
服务器当前正在使用的可分页计算机内存的字节数。该值有助于确定 MaxPagedMemoryUsage 参数的最佳值。
Pool Paged Failures(Server)
从分页池分配时失败的次数。这种失败说明计算机的物理内存或分页文件太小。
八、 网络(Network Interface)
Bytes Total/sec
Network InterfaceBytes Total/sec为发送和接收字节的速率,可以通过该计数器的值判断网络连接速度是否是瓶颈,具体操作方式是用该计数器的值和目前网络的带宽进行比较。(参考值:该计数器和网络带宽相除,<50%)
Bytes
Total/sec 指在每个网络适配器上发送和接收字节的速率,包括帧字符在内。Network InterfaceBytes
Total/sec 是 Network InterfaceBytes Received/sec 和 Network
InterfaceBytes Sent/sec 的总和。
=================================================
定位系统瓶颈可以做哪些?
压测端正常么?
DB端正常么?
应用端正常么?
分析线程
CPU Profiling
系统资源**
CPU占用率
内存使用情况
磁盘I/O速度、传输和读写比率、错误统计率与传输包的大小
消耗最多的进程
计算机详细信息和资源
页面空间和页面I/O速度
用户自定义的磁盘组
网络文件系统
对一个进程,需要看哪些计数器?
进
程对象而言,它拥有的计数器种类包括ID Process(进程的PID)、Thread Count(线程数)、Priority
Base(进程优先级)、IO Read Bytes/sec(每秒IO读取字节数)、IO Writer Bytes/sec(每秒IO写出字节数)等
系统性能计数器需要的对象
对于系统性能计数器,默认包括许多监视对象,对于一般用户需要监测的对象有6类:System、Processor、Memory、Process、Physical Disk、Network Interface