如何在Windows服务器做性能测试

2022-03-10 社会 118阅读

一、远程连接到Windows服务器,使用windows系统自带工具进行收集性能数据

1、Windows服务器中自带的性能监控工具叫做PerformanceMonitor,在开始-运行中输入‘Perfmon.msc’,然后回车即可运行。通过界面,控制面板\所有控制面板项\管理工具\性能监视器也能打开

打开后,页面展示

 

2、添加计数器

性能>数据收集器集>用户定义[右击]>新增‘数据收集器集’>手动创建高级>下一步

 

勾选创建数据日志>性能计数器>【下一步】

 

点击“添加”→选择计数器

点击选中的可用计数器>【添加】>【确定】

【确定】>【下一步】

选择目录后,点击【完成】

查看新增的计数器,输出地方为日志输出地址

 

3、选择日志数据源格式

选择用户定义下的数据收集器集>右键属性>性能计数器,日志格式选择“逗号分隔”(即csv格式)

 

 

4、开始启动数据采集,选择用户定义下的数据收集器集>右键属性>开始

此时,输出有地址了

 

5、用EXCEL将数据转换为折线图,并分析性能情况

 

二、分析性能情况

(1)内存泄露判断

●虚拟内存字节数(VirtualBytes)应该远大于工作集字节数(Workingset),如果两者变化规律相反,比如说工作集增长较快,虚拟内存增长较少,则可能说明出现了内存泄露的情况。

●对于Workingset、PrivateBytes、Available bytes这些计数器,如果在测试期间内数值持续增长,而且测试停止后位置在高水平,则也说明存在内存泄露。

●Windows资源监控中,如果Process\PrivateBytes计数器和Process\WorkingSet计数器的值在长时间内持续升高,同时Memory\Available

bytes计数器的值持续降低,则很可能存在内存泄漏。

(2)CPU使用情况

●一般平均不要超过70%,最大不要超过90%(好:70%、坏:85%、很差:90%)

(3)tps(每秒处理事务的数量,在SOAPUI中进行统计)

●一般在10-100,不同应用程序具体值不同

 

1234567891011121314151617

  

几个常用参数的参考值: CPU:%Processor Time:表示CPU的使用率,如果值大于80表示CPU的处理调度能力偏低。 硬盘:%Disk Time:表示硬盘的I/O操作的频率(繁忙时间),如果值大于80表示硬盘I/O调度能力偏低。AverageDiskQueueLength:表示硬盘I/O操作等待队列的长度,如果值大于2表示硬盘I/O调度能力偏低。 内存 Pages/Sec:表示系统对虚拟内存每秒钟的访问次数,如果值大于20表示有内存方面的问题。(有可能是物理内存偏低,也有可能是虚拟内存没有配置正确。一般情况下虚拟内存应为物理内存的1.5-2倍) Committed Bytes and AvailableBytes:Committed Bytes表示虚拟内存的大小,AvailableBytes表示剩余可用内存的大小。正常情况下,AvailableBytes减少,pages(页面数)应该增加,提供页面交换。
如果AvailableBytes的值很小表示物理内存偏低。当关闭一些应用以后,Committed Bytes应该减少,AvailableBytes应该增加。因为关闭的进程释放了之前占用的内存资源。如果相应的值没有发生变化,那么该进程就可能造成了内存泄漏。
 CacheBytes:表示系统缓存的大小。如果值大于4M表示物理内存偏低。

  

  

三、关于计数器的选择

perfmon的计数器主要分四种:处理器性能计数器、内存性能计数器、磁盘性能计数器以及网络性能计数器。

以下为监控服务器常用的计数器:

常用的性能对象与指标

  

性能对象

  

计数器

  

提供的信息

  

Processor

  

%IdleTime

  

%IdleTime是处理器在采样期间空闲的时间的百分比

  

Processor

  

%ProcessorTime

  

%ProcessorTime指处理器用来执行非闲置线程时间的百分比。计算方法是,测量范例间隔内非闲置线程活动的时间,用范例间隔减去该值。这个计数器是处理器活动的主要说明器,显示在范例间隔时所观察的繁忙时间平均百分比。

  

Processor

  

%UserTime

  

%UserTime指处理器处于用户模式的时间百分比。用户模式是为应用程序、环境分系统和整数分系统设计的有限处理模式。

  

Memory

  

AvailableBytes

  

AvailableBytes显示出当前空闲的物理内存总量。当这个数值变小时,Windows开始频繁地调用磁盘页面文件。如果这个数值很小,例如小于5MB,系统会将大部分时间消耗在操作页面文件上。

  

Memory

  

%CommittedBytesinUse

  

%CommittedBytesInUse是Memory:CommittedBytes与Memory:CommitLimit之间的比值。(Committedmemory指如果需要写入磁盘时已在分页文件中保留空间的处于使用中的物理内存。CommitLimit是由分页文件的大小而决定的。如果扩大了分页文件,该比例就会减小)。这个计数器只显示当前百分比;而不是一个平均值。

  

Memory

  

PageFaults/sec

  

PageFaults/sec是指处理器处理错误页的综合速率。用错误页数/秒来计算。当处理器请求一个不在其工作集(在物理内存中的空间)内的代码或数据时出现的页错误。这个计数器包括硬错误(那些需要磁盘访问的)和软错误(在物理内存的其它地方找到的错误页)。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。这个计数器显示用上两个实例中观察到的值之间的差除以实例间隔的持续时间所得的值。

  

NetworkInterface

  

BytesTotal/sec

  

BytesTotal/sec是发送和接收字节的速率,包括帧字符在内。

  

NetworkInterface

  

Packets/sec

  

Packets/sec为发送和接收数据包的速率。

  

PhysicalDisk

  

%BusyTime

  

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

  

PhysicalDisk

  

Avg.DiskQueueLength

  

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

  

PhysicalDisk

  

CurrentDiskQueueLength

  

CurrentDiskQueueLength指在收集操作数据时在磁盘上未完成的请求的数目。它包括在快照内存时正在为其提供服务中的请求。这是一个即时长度而非一定间隔时间的平均值。多主轴磁盘设备可以一次有多个请求操作,但是其它同时发生的请求为等候服务。这个计数器可能会反映一个暂时的高或低的列队长度,但是如果在磁盘驱动器存在持续负载,可能值会总是很高。请求等待时间与这个列队的长度减去磁盘上的主轴成正比。这个差值应小于2才能保持良好的性能。

  

Logical

Disk

  

%FreeSpace

  

%FreeSpace是所选定的逻辑磁盘驱动器上总的可用空闲空间的百分比。

  

Logical

Disk

  

FreeMegabytes

  

可用的MB显示磁盘驱动器上尚未分配的空间。

  

 

 以下为监控进程常用的计数器:

Process对象的主要指标

  

性能对象

  

计数器

  

提供的信息

  

Process

  

%PrivilegedTime

  

%PrivilegedTime是在特权模式下处理线程执行代码所花时间的百分比。当调用Windows系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。在用户模式执行的线程无法访问这些数据。对系统的调用可以是直接的(explicit)或间接的(implicit),例如页面错误或间隔。

  

Process

  

%ProcessorTime

  

%ProcessorTime是所有进程线程使用处理器执行指令所花的时间百分比。指令是计算机执行的基础单位。线程是执行指令的对象,进程是程序运行时创建的对象。此计数包括处理某些硬件间隔和陷阱条件所执行的代码。

  

Process

  

%UserTime

  

%UserTime指处理线程用于执行使用用户模式的代码的时间的百分比。应用程序、环境分系统和集合分系统是以用户模式执行的。Windows的可执行程序、内核和设备驱动程序不会被以用户模式执行的代码损坏。

  

Process

  

CreatingProcessIDvalue

  

CreatingProcessIDvalue指创建该进程的父进程号。

  

Process

  

ElapsedTime

  

该进程运行的总时间(用秒计算)。

  

Process

  

HandleCount

  

由这个处理现在打开的句柄总数。这个数字等于这个处理中每个线程当前打开的句柄的总数。

  

Process

  

IDProcess

  

IDProcess指这个处理的特别的识别符。IDProcess号可重复使用,所以这些IDProcess号只能在一个处理的寿命期内识别那个处理。

  

Process

  

IODataBytes/sec

  

处理从I/O操作读取/写入字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。

  

Process

  

IODataOperations/sec

  

本处理进行读取/写入I/O操作的速率。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。

  

Process

  

IOOtherBytes/sec

  

处理给不包括数据的I/O操作(如控制操作)字节的速率。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。

  

Process

  

IOOtherOperations/sec

  

本处理进行非读取/写入I/O操作的速率。例如,控制性能。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。

  

Process

  

IOReadBytes/sec

  

处理从I/O操作读取字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。

  

Process

  

IOReadOperations/sec

  

本处理进行读取I/O操作的速率。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。

  

Process

  

IOWriteBytes/sec

  

处理从I/O操作写入字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备。

  

Process

  

IOWriteOperations/sec

  

本处理进行写入I/O操作的速率。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。

  

Process

  

PageFaults/sec

  

PageFaults/sec指在这个进程中执行线程造成的页面错误出现的速度。当线程引用了不在主内存工作集中的虚拟内存页即会出现PageFault。如果它在备用表中(即已经在主内存中)或另一个共享页的处理正在使用它,就会引起无法从磁盘中获取页。

  

Process

  

PageFileBytes

  

PageFileBytes指这个处理在Pagingfile中使用的最大字节数。PagingFile用于存储不包含在其他文件中的由处理使用的内存页。PagingFile由所有处理共享,并且PagingFile空间不足会防止其他处理分配内存。

  

Process

  

PageFileBytesPeak

  

PageFileBytesPeak指这个处理在Pagingfiles中使用的最大数量的字节。

  

Process

  

PoolNonpagedBytes

  

PoolNonpagedBytes指在非分页池中的字节数,非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。这个计数器仅显示上一次观察的值;而不是一个平均值。

  

Process

  

PoolPagedBytes

  

PoolPagedBytes指在分页池中的字节数,分页池是系统内存(操作系统使用的物理内存)中可供对象(在不处于使用时可以写入磁盘的)使用的一个区域。这个计数器仅显示上一次观察的值;而不是一个平均值。

  

Process

  

PriorityBase

  

这次处理的当前基本优先权。在一个处理中的线程可以根据处理的基本优先权提高或降低自己的基本优先权。

  

Process

  

PrivateBytes

  

PrivateBytes指这个处理不能与其他处理共享的、已分配的当前字节数。

  

Process

  

ThreadCount

  

在这次处理中正在活动的线程数目。指令是在一台处理器中基本的执行单位,线程是指执行指令的对象。每个运行处理至少有一个线程。

  

Process

  

VirtualBytes

  

VirtualBytes指处理使用的虚拟地址空间的以字节数显示的当前大小。使用虚拟地址空间不一定是指对磁盘或主内存页的相应的使用。虚拟空间是有限的,可能会限制处理加载数据库的能力。

  

Process

  

VirtualBytesPeak

  

VirtualBytesPeak指在任何时间内该处理使用的虚拟地址空间字节的最大数。

  

Process

  

WorkingSet

  

WorkingSet指这个处理的WorkingSet中的当前字节数。WorkingSet是在处理中被线程最近触到的那个内存页集。如果计算机上的可用内存处于阈值以上,即使页不在使用中,也会留在一个处理的WorkingSet中。当可用内存降到阈值以下,将从WorkingSet中删除页。如果需要页时,它会在离开主内存前软故障返回到WorkingSet中。

  

Process

  

WorkingSetPeak

  

WorkingSetPeak指在任何时间这个在处理的WorkingSet的最大字节数。

 

  

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com