性能分析,Windows自带一种 ,LoadRunner自带一种,2种参数类似
运行中搜索:性能监视器
进到:性能-数据收集器-用户定义-右键-新建-数据收集器集
名称自己任意输入,选择手动创建
数据类型根据自己所需的勾选,下一步
选择要监控的指标,点击添加
出现各种指标,可以进行选择,先随便选几个,点击确定,下一步,后面会介绍一些指标含义
选择监控哪些程序,可以不选,直接监控主机
后面一直下一步就行,最终添加成功,手动启动或停止
数据集点进去之后,出现3个文件,计数器、跟踪、配置,计数器右键属性可弹出配置界面,选择新的监控指标 ,日志格式要改为逗号分隔,也就是csv文件,默认是二进制的。
打开loadrunner控制台工具,按照下面3个步骤操作
点击下面的添加,会判断能不能连接到监控主机,连不到报错,如果报错就先写本地localhost,后面研究远程别的主机。
出现这个界面可以看下,是不是和windows自带的长的几乎相同了。同样需要哪个就添加哪个,右侧实例是表示当前选择的cpu ,有多核,是要监控某个cpu还是total全部。
下列对象都会以二级标题这样列,其中(Processor)括号中的内容就是对象类,不管是性能监视器还是LR中的都是这个名称。对象类,里面包含多个指标,本文会列出很多指标,其中常用的我会标注出来 ,其他的大家根据自己需求添加即可。
% C1 Time 是处理器处于 C1 低能量空闲状态下的时间百分比。% C1 Time 是处理器空闲总时间的一个子集。C1 低能量空闲状态允许处理器保持其整个环境并快速返回运行状态。不是所有的系统都支持 % C1 状态。
% C2 Time 是处理器处于 C2 低能量空闲状态下的时间百分比。% C2 Time 是处理器空闲总时间的一个子集。C2 低能量空闲状态允许处理器保持系统缓存环境。C2 能量状态比 C1 的能量更低而且退出延迟状态更高。不是所有的系统都支持 C2 状态。
% C3 Time 是处理器处于 C3 低能量空闲状态下的时间百分比。% C3 Time 是处理器空闲总时间的一个子集。处于 C3 低能量空闲状态时,处理器无法其缓存的协调。C3 能量状态比 C3 的能量更低而且退出延迟状态更高。不是所有的系统都支持 C3 状态。
% DPC Time 指在采样间隔期间处理器用在延迟过程调用(DPC)接收和提供服务的时间百分比。DPC 是以低于标准中断优先权运行的中断。因为 DPC 是以特权模式执行的,所以 % DPC Time 是 % Privileged Time 的一部分。他们是分开计算的,并且不是中断计数器的一部分。此计数器将平均繁忙时间显示为采样时间的百分比。
% Idle Time 是处理器在采样期间空闲的时间的百分比。
% Interrupt Time 是处理器在实例间隔期间接受和服务硬件中断的时间。此值间接表示了生成间隔的设备活动, 如系统时钟、鼠标、磁盘驱动程序、数据通讯线路、网络界面卡和其他外围设备。当这些设备完成一项任务或需要管理时,它们通常会中断处理器。中断期间,正常的线程执行会暂停。多数系统时钟会每隔 10 毫秒中断处理器,产生间隔活动的后台执行,在间隔期间,终止正常的线程执行。此计数器显示此平均占用时间为实例时间的一部分。
% Privileged Time 是在特权模式下进程线程执行代码所花时间的百分比。当调用 Windows 系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。在用户模式执行的线程无法访问这些数据。 对系统的调用可以是直接的(explicit)或间接的(implicit),例如页面错误或中断。不像某些早期的操作系统,Windows 除了使用用户和特权模式的传统保护模式之外,还使用处理边界作为分系统保护。某些由 Windows 为你的应用程序所做的操作除了出现在处理的特权时间内,还可能在其他子系统处理出现。
% Processor Time 指处理器用来执行非闲置线程时间的百分比。计算方法是,度量处理器用来执行空闲线程的时间,然后用 100% 减去该值。(每个处理器有一个空闲线程,该线程在没有其他线程可以运行时消耗周期)。此计数器是处理器活动的主要指示器,显示在采样间隔期间所观察的繁忙时间平均百分比。应注意,对处理器是否空闲的计算是在系统时钟的内部采样间隔期间(10ms)执行的。考虑到现在的处理器速度非常快,因此,在处理器可能会用大量时间为系统时钟采样间隔之间的线程提供服务时,% Processor Time 会低估处理器利用率。当恰好进行采样后即向计时器发出信号时,更可能对应用程序做出不准确地度量,基于工作负荷的计时器应用程序是一个这样的示例。
% User Time 指处理器处于用户模式的时间百分比。用户模式是为应用程序、环境分系统和整数分系统设计的有限处理模式。另一个模式为特权模式,它是为操作系统组件设计的并且允许直接访问硬件和所有内存。操作系统将应用程序线程转换成特权模式以访问操作系统服务。这个计数值将平均忙时作为示例时间的一部分显示。
C1 Transitions/sec 是 CPU 进入 C1 低能量空闲状态的速度。CPU 在足够空闲时进入 C1 状态,并在任何中断下退出这个状态。这个计数器显示上两个范例中观察到的值的差异除以采样间隔的时间。
C2 Transitions/sec 是 CPU 进入 C2 低能量空闲状态的速度。CPU 在足够空闲时进入 C2 状态,并在任何中断下退出这个状态。这个计数器显示上两个范例中观察到的值的差异除以采样间隔的时间。
C3 Transitions/sec 是 CPU 进入 C3 低能量空闲状态的速度。CPU 在足够空闲时进入 C3 状态,并在任何中断下退出这个状态。这个计数器显示上两个范例中观察到的值的差异除以采样间隔的时间。
DPC Rate 是将延缓进程调用 (DPC) 在每个处理器系统时钟嘀嗒之间添加到本处理器的 DPC 列队中的速率。DPC 是低于标准间隔运行优先级别的间隔。每个处理器拥有各自的 DPC 列队。此计数器衡量将 DPC 添加到列队的速度,而不是列队中 DPC 的数量。这个计数器只显示观察到的最后一个值;它不是一个平均值。
DPCs Queued/sec 指将延迟过程调用(DPC)添加到处理器 DPC 队列的平均速率,单位为每秒事件次数。DPC 是以低于标准中断优先权运行的中断。每个处理器均拥有各自的 DPC 列队。此计数器计算将 DPC 添加到队列的速率,而不是队列中 DPC 的数量。此计数器显示上两个采样中观察到的值的差除以采样间隔时间所得的值。
Interrupts/sec 是处理器接收和处理硬件中断的平均速度,单位为每秒事例数。这不包括分开计数的延迟的进程调用(DPCs)。这个值说明生成中断的设备(如系统时钟、鼠标、磁盘驱动器、数据通讯线、网络接口卡和其他外缘设备)的活动。这些设备通常在完成任务或需要注意时中断处理器。正常线程执行因此被暂停。系统时钟通常每 10 毫秒中断处理器一次,创建中断活动的后台执行。这个计数值显示用上两个实例中观察到的值之间的差除于实例间隔的持续时间所得的值。
Processor Queue Length(常用、处理器队列长度,用于CPU)
是处理器队列的线程数量。与磁盘计数器不同,此计数器只显示就绪线程,而不是正在运行的线程。即使运行多处理器的计算机只有一个处理器队列。因此,如果一台计算机有几个处理器,你需要将此值除以处理工作量的处理器数量。每个处理器,不管工作量大小,如果保持 10 个以下线程的处理器队列,通常是可以接受的。
% Committed Bytes In Use 是 Memory\\Committed Bytes 与 Memory\\Commit Limit 之间的比值。(Committed memory 指如果需要写入磁盘时已在页面文件中保留空间的处于使用中的物理内存。Commit Limit 是由页面文件的大小而决定的。如果扩大了页面文件,该比例就会减小)。这个计数器只显示当前百分比;它不是一个平均值。
Available Bytes 是指能立刻分配给一个进程或系统使用的物理内存数量,以字节为单位表示。它等于分配给待机(缓存的)、空闲和零分页列表内存的总和。
Available KBytes 是指能立刻分配给一个进程或系统使用的物理内存数量,以 KB 为单位表示。它等于分配给待机(缓存的)、空闲和零分页列表内存的总和。
Available MBytes 指能立刻分配给一个进程或系统使用的物理内存数量,以 MB 为单位表示。它等于分配给待机(缓存的)、空闲和零分页列表内存的总和。
Cache Bytes 是指物理内存中当前常驻并且处于活动状态的那部分系统文件缓存的大小(字节)。Cache Bytes 计数器等同于 Memory\\System Cache Resident Bytes 计数器。该计数器仅显示上一次观察到的值;而不是一个平均值。
Cache Bytes Peak 指从系统上一次重新启动后系统文件缓存使用的最大字节数。该值可能大于当前缓存的大小。该计数器仅显示上一次观察到的值;而不是一个平均值。
“缓存中断/秒”是指在文件系统缓存中找不到要寻找的页而需要从内存(软中断)或磁盘(硬中断)中的其他地方检索该页时,出现的中断的频率。文件系统缓存是指物理内存中的一个区域,其中会存储应用程序最近使用过的数据页。缓存活动是大部分应用程序 I/O 操作的可靠指示器。这个计数器显示中断的次数而不管每次操作中断的页数。
Commit Limit 是指在不用扩展分页文件的情况下可以使用的虚拟内存的数量。这是用字节来计算的。确认的内存是指保留在磁盘分页文件上的物理内存。在每个逻辑磁盘上可以有一个分页内存。如果扩展分页文件,这个限量将相应增加。这个计数器只显示上一回观察到的值;而不是一个平均值。
Committed Byte 是指以字节表示的确认虚拟内存。确认内存磁盘页面文件上保留了空间的物理内存。每个物理磁盘上可以有一个或一个以上的页面文件。这个计数器只显示上一回观察到的值;它不是一个平均值。
Demand Zero Faults/sec 是需要零页面以满足错误的速度。零页面和前面存储的数据被删除并被填满零的页面是 Windows 的一个安全特征,它阻止其他进程看见前一进程使用内存空间存储的数据。Windows 保存一份零页面的列表以加速此进程。此计数器显示错误的数量,它并不考虑为了满足错误而检索的页面数量。此计数器显示上两个示例的值除以实例间隔时间的差别。
Free & Zero Page List Bytes 是指以字节表示的分配给空闲和零分页列表的物理内存数量。此内存不包含缓存数据。其立即可分配给进程或用于系统。
Free System Page Table Entries 指系统当前未使用的页表项数目。此计数器仅显示上一次观察到的值;它不是平均值。
长期平均备用缓存生存时间,以秒表示。衡量备用缓存中数据的平均生存时间已经过较长间隔。
Modified Page List Bytes 是指以字节表示的分配给修改的分页列表的物理内存数量。此内存包含由进程、系统和系统缓存使用的非活动缓存数据和代码。在此内存分配给进程或用于系统之前,需要写出此内存。
“缺页中断/秒”是每秒钟中断的平均缺页数。之所以用每秒中断的缺页数量来衡量此性能,是因为每个中断操作只会中断一个缺页,因此这就等于缺页中断操作的数量。这个计数器包括硬中断(需要对磁盘进行访问的中断)和软中断(其错误页是在物理内存的其他地方找到的)。许多处理器都可以应付存在大量软中断的情况,且不会造成严重后果。但是,对于需要访问磁盘的硬中断,则可能造成严重的延迟。
Page Reads/sec 是取读磁盘以解析硬页面错误的速度。它显示读取操作的数量,它并不考虑每个操作的页面数量。当一个进程引用一个虚拟内存的页面,而此虚拟内存位于工作集以外或物理内存的其他位置,并且此页面必须从磁盘检索时,就会发生硬页面错误。此计数器是引起系统范围内延迟的主要指示器。它包含读取操作以满足文件系统缓存(通常由应用程序请求)和非缓存映射内存文件的错误。比较内存的值\\Pages Reads/sec 与内存的值\\Pages Input/sec 来决定每个操作取读的平均页面数量。
Page Writes/sec 是指为了释放物理内存空间而将页面写入磁盘的速度。只有页面还在物理内存中时所做的更改才会写入磁盘,因此这些页面可能只保留数据而不保留代码。这个计数器显示写入操作不计数每个操作中写入的页数。这个计数器显示用上两个实例中观察到的值之间的差除于实例间隔的持续时间所得的值。
Pages Input/sec 是从磁盘取读页面以解析硬页面错误的速度。它显示读取操作的数量,它并不考虑每个操作的页面数量。当一个进程引用一个虚拟内存的页面,而此虚拟内存位于工作集以外或物理内存的其他位置,并且此页面必须从磁盘检索时,就会发生硬页面错误。当夜面发生错误时,系统尝试将多个连续页面读入内存以充分利用取读操作的优点。 请比较 Memory\\Pages Input/sec 的值和 Memory\\Page Reads/sec 的值以便决定每个取读操作读入内存的平均页面数量。
Pages Output/sec 是指为了释放物理内存空间而将页面写入磁盘的速度。只有在物理内存中更改时页面才会写回到磁盘上,因此页面可能只保留数据而不是代码。高速的页面输出可能表示内存不足。当物理内存不足时,Windows 会将页面写回到磁盘以便释放空间。这个计数器可以在不转换的情况下,显示页面数量并可以与其他页面计数进行比较。
Pages/sec 是指为解决硬页错误从磁盘读取或写入磁盘的速度。这个计数器是可以显示导致系统范围延缓类型错误的主要指示器。它是 Memory\\Pages Input/sec 和 Memory\\Pages Output/sec 的总和。是用页数计算的,以便在不用做转换的情况下就可以同其他页计数如: Memory\\Page Faults/sec 做比较,这个值包括为满足错误而在文件系统缓存(通常由应用程序请求)的非缓存映射内存文件中检索的页。
Pool Nonpaged Allocs 指在非分页缓冲池中分派空间的调用数。非分页缓冲池是系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入到磁盘上并且分派后必须保留在物理内存中的对象)使用的一个区域。它是用衡量分配空间的调用数来计数的,而不管在每个调用中分派的空间数是多少。这个计数器仅显示上一次观察的值;而不是一个平均值。
Pool Nonpaged Bytes 是指非分页缓冲池的大小(字节),非分页缓冲池是系统虚拟内存中可供(那些不可写入磁盘但是只要分配完成就必须保留在物理内存中的)对象使用的一个区域。Memory\\Pool Nonpaged Bytes 的计数方式与 Process\\Pool Nonpaged Bytes 的计数方式不同,因此可能不等于 Process(_Total)\\Pool Nonpaged Bytes。该计数器仅显示上一次观察到的值;而不是一个平均值。
Pool Paged Allocs 是指分页缓冲池中分配空间的调用次数。分页缓冲池是系统虚拟内存中可供(在不使用时可以写入磁盘的)对象使用的一个区域。它是以分配空间的调用次数来计算的,而不论在每次调用中分配的空间是多少。该计数器仅显示上一次观察到的值;而不是一个平均值。
Pool Paged Bytes 是指分页缓冲池的大小(字节),分页缓冲池是系统虚拟内存中可供(在不使用时可以写入磁盘的)对象使用的一个区域。Memory\\Pool Paged Bytes 的计数方式与 Process\\Pool Paged Bytes 的计数方式不同,因此可能不等于 Process(_Total)\\Pool Paged Bytes。该计数器仅显示上一次观察到的值;而不是一个平均值。
Pool Paged Resident Bytes 是指物理内存中当前常驻并且处于活动状态的那部分分页缓冲池的大小(字节)。分页缓冲池是系统虚拟内存中可供(在不使用时可以写入磁盘的)对象使用的一个区域。该计数器仅显示上一次观察到的值;而不是一个平均值。
Standby Cache Core Bytes 是指以字节表示的分配给核心备用缓存分页列表的物理内存数量。此内存包含由进程、系统和系统缓存所使用的非活动缓存数据和代码。可立即将其分配给进程或用于系统。如果系统的可用空闲和零分页列表内存不足,则在较高优先级的备用缓存分页列表上的内存之前重新决定低优先级备用缓存分页列表上内存的用途。
Standby Cache Normal Priority Bytes 是指以字节表示的分配给标准优先级备用缓存分页列表的物理内存数量。此内存包含由进程、系统和系统缓存所使用的非活动缓存数据和代码。可立即将其分配给进程或用于系统。如果系统的可用空闲和零分页列表内存不足,则在较高优先级的备用缓存分页列表上的内存之前重新决定低优先级备用缓存分页列表上内存的用途。
Standby Cache Reserve Bytes 是指以字节表示的分配给保留备用缓存分页列表的物理内存数量。此内存包含由进程、系统和系统缓存所使用的非活动缓存数据和代码。可立即将其分配给进程或用于系统。如果系统的可用空闲和零分页列表内存不足,则在较高优先级的备用缓存分页列表上的内存之前重新决定低优先级备用缓存分页列表上内存的用途。
System Cache Resident Bytes 是指物理内存中当前常驻并且处于活动状态的那部分系统文件缓存的大小(字节)。System Cache Resident Bytes 计数器等同于 Memory\\Cache Bytes 计数器。该计数器仅显示上一次观察到的值;而不是一个平均值。
System Code Resident Bytes 是指物理内存中当前常驻并且处于活动状态的可分页操作系统代码的大小(字节)。该值是 Memory\\System Code Total Bytes 的一部分。Memory\\System Code Resident Bytes (和 Memory\\System Code Total Bytes) 不包括必须保留在物理内存中且不能写入到磁盘的代码。该计数器仅显示上一次观察到的值;而不是一个平均值。
System Driver Resident Bytes 指设备驱动程序当前使用的可分页的虚拟内存的字节数。它是驱动程序的工作集(物理内存区域)。这个值为 Memory\\System Driver Total Bytes (也包括可以写入磁盘的驱动程序内存)的组件。无论 System Driver Resident Bytes 还是 System Driver Total Bytes 都不可以写入磁盘。
System Driver Total Bytes 是指设备驱动程序当前使用的可分页虚拟内存的大小(字节)。当可分页内存不使用时可以写入到磁盘。它包括物理内存(Memory\\System Driver Resident Bytes)和代码以及分页到磁盘的数据。它是 Memory\\System Code Total Bytes 的一部分。该计数器仅显示上一次观察到的值;而不是一个平均值。
Transition Faults/sec is 是恢复页面解析页面错误的速度。此恢复页面正被另一个共享此页面进程使用,或在被修改的页面列表或待机列表上,或在发生页面错误时正被写入磁盘。在没有额外磁盘运行的情况下,页面已被恢复。中转错误以错误数量计算,因为每一操作只有一个页面错误,它也等于错误的页面数量。
Transition Pages RePurposed 指重新用于不同用途的中转缓存页面数量的比例。这些页面否则会保留在页面缓存,在此页面在将来被访问时,提供一个(快速)软错误(而不是从后备存储检索)。请注意,这些页面可能包含专用或共享内存。
Write Copies/sec 是指使用物理内存中的其他空间复制页以满足写入的尝试而引起的页面错误速度。由于页只在写入时才复制,这是一个实用的共享数据的方式;否则需要共享该页。这个计数器在不计算每次操作时复制的页数的情况下显示复制的数量。
(1)首先查看Memory:% Commitued Bytes in Use指标 如果该指标数值比较大,系统可能出现了内存方面的问题,需要继续下面步骤进一步分析。
另外也可以查看Available Bytes可用物理内存(参考值:>=10%),如果该值小,则说明可用内存不足,存在性能瓶颈。 如果 Available Bytes 的值很小(4 MB 或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。
(2)注意Pages/sec、Pages Read/sec和Page Faults/sec的值 操作系统会利用磁盘较好的方式提高系统可用内存量or提高内存的使用效率,这三个指标直接反应了操作系统进行磁盘交换的频度。
Pages/sec: 表明由于硬件页面错误而从磁盘取出的页面数(参考值:0-20),或由于页面错误而写入磁盘以释放[url=]工作[/url]集空间的页面数。 如果 Pages/sec 的值为 20 或更大,那么您应该进一步研究页交换活动;Pages/sec值不一定大就表明有内存问题,可能是运行使用内存映射文件的程序所致。
Page Input/sec:表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec)
Page Reads/sec:表示为了解决硬错误而从硬盘上读取的页数。(参考值: <=5)
Page Faults/sec:表示每秒钟处理的错误页数,包括硬错误和软错误,当处理器在内存中读取某一页出现错误时,就会产生缺页中断,也就是 page Fault。 此时需要查看Pages Read/sec的计数值,该计数器的阀值为5,如果计数值>5,则可以判断存在内存方面的问题。
如果这个页位于内存的其他位置,这种错误称为软错误,用Transition Fault/sec 来衡量; 如果这个页位于硬盘上,必须从硬盘重新读取,这个错误成为硬错误。硬错误会使系统的运行效率很快将下来。
(引用:https://www.cnblogs.com/zhangwangvip/p/13731421.html)
内存泄露分析
1、如果怀疑有内存泄露,请监视 Memory/Available Bytes 和 Memory/ Committed Bytes,以观察内存行为,并监视你认为可能在泄露内存的进程的 Process/ Private Bytes、Process/ Working Set 和Process/ Handle Count。
2、如果怀疑是内核模式进程导致了泄露,则还应该监视 Memory/ Pool Nonpaged Bytes、Memory/ Pool Nonpaged Allocs 和 Process(process_name)/ Pool Nonpaged Bytes
如果发生了内存泄漏,process\private bytes计数器和process\working set 计数器的值往往会升高,同时avaiable bytes的值会降低
private Bytes:是指进程所分配的无法与其他进程共享的当前字节数量。该计数器主要用来判断进程在性能测试过程中有无内存泄漏。
例如:对于一个IIS之上的web应用,我们可以重点监控inetinfo进程的Private Bytes,如果在性能测试过程中,该进程的Private Bytes计数器值不断增加,或是性能测试停止后一段时间,该进程的Private Bytes仍然持续在高水平,则说明应用存在内存泄漏。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务