如何在Windows服务器做性能测试?
本⽂参考
测试关注点:⼀般操作系统性能主要涉及到的指标:处理器使⽤情况、内存占有量、磁盘I/0操作以及⽹络流量等。
  Performance Monitor本⾝也是⼀个进程,运⾏起来也要占⽤⼀定的系统资源。所以你看到的资源的使⽤量应该⽐实际的要稍微⾼⼀点。这个⼯具在帮助管理员判断系统性能瓶颈时⾮常有⽤。举个列⼦来说,今天有个⽤户抱怨说他们项⽬组的服务器(这是⼀台虚拟机)运⾏起来⾮常慢,但也不知道具体问题出在什么地⽅。任务管理器⾥显⽰CPU和内存的使⽤量都不算⾼,但服务器的相应就是⾮常慢。打开Performance Monitor,让其运⾏⼀段时间后(因为参考平均值会⽐较准确),发现average disk queue 的值⽐较⾼,这就说明物理服务器的硬盘负荷太重,I/O操作的速度跟不上系统的要求。关掉虚拟机,将其转移到另⼀台硬盘负载⽐较⼩的主机上,再打开虚拟机。问题就解决了。
⼀、远程连接到Windows服务器,使⽤windows系统⾃带⼯具进⾏收集性能数据
1、Windows服务器中⾃带的性能监控⼯具叫做Performance Monitor,在开始-运⾏中输⼊‘Perfmon.msc’,然后回车即可运⾏。通过界⾯,控制⾯板\所有控制⾯板项\管理⼯具\性能监视器也能打开
打开后,页⾯展⽰
2、添加计数器
性能>数据收集器集>⽤户定义[右击]>新增‘数据收集器集’>⼿动创建⾼级>下⼀步
勾选创建数据⽇志>性能计数器>【下⼀步】
点击“添加”→选择计数器
点击选中的可⽤计数器>【添加】>【确定】
【确定】>【下⼀步】
选择⽬录后,点击【完成】
查看新增的计数器,输出地⽅为⽇志输出地址
3、选择⽇志数据源格式
选择⽤户定义下的数据收集器集>右键属性>性能计数器,⽇志格式选择“逗号分隔”(即csv格式)
4、开始启动数据采集,选择⽤户定义下的数据收集器集>右键属性>开始
此时,输出有地址了
5、⽤EXCEL将数据转换为折线图,并分析性能情况
⼆、分析性能情况
(1)内存泄露判断
●虚拟内存字节数(VirtualBytes)应该远⼤于⼯作集字节数(Workingset),如果两者变化规律相反,⽐如说⼯作集增长较快,虚拟内存增长较少,则可能说明出现了内存泄露的情况。
●对于Workingset、Private Bytes、Available bytes这些计数器,如果在测试期间内数值持续增长,⽽且测试停⽌后位置在⾼⽔平,则也说明存在内存泄露。
●Windows资源监控中,如果Process\PrivateBytes计数器和Process\WorkingSet计数器的值在长时间内持续升⾼,同时Memory\Available
bytes计数器的值持续降低,则很可能存在内存泄漏。
(2)CPU使⽤情况
●⼀般平均不要超过70%,最⼤不要超过90%(好:70% 、坏:85%、很差:90%)
(3)tps(每秒处理事务的数量,在SOAPUI中进⾏统计)
●⼀般在10-100,不同应⽤程序具体值不同
Cache Bytes
三、关于计数器的选择
perfmon的计数器主要分四种:处理器性能计数器、内存性能计数器、磁盘性能计数器以及⽹络性能计数器。
以下为监控服务器常⽤的计数器:
常⽤的性能对象与指标
性能对象计数器提供的信息
Processor% Idle Time% Idle Time 是处理器在采样期间空闲的时间的百分⽐
Processor
%
Processor
Time
% Processor Time 指处理器⽤来执⾏⾮闲置线程时间的百分⽐。计算⽅法是,测量范例间隔内⾮闲置线程活动的时间,⽤范例间隔减去该值。这个计数器是处理器活动的主要说明器,显⽰在范例间隔时所观察的繁忙时间平均百分⽐。
Processor% User
Time % User Time 指处理器处于⽤户模式的时间百分⽐。⽤户模式是为应⽤程序、环境分系统和整数分系统设计的有限处理模式。
Memory Available
Bytes
Available Bytes显⽰出当前空闲的物理内存总量。当这个数值变⼩时,Windows开始频繁地调⽤磁盘页⾯⽂件。如果这个数值很⼩,例如⼩于5 MB,系统会将⼤部分时间消耗在操作页⾯⽂件上。
Memory %
Committed
Bytes in
Use
% Committed Bytes In Use 是 Memory: Committed Bytes 与Memory: Commit Limit之间的⽐值。(Committed
memory指如果需要写⼊磁盘时已在分页⽂件中保留空间的处于使⽤中的物理内存。Commit Limit是由分页⽂件的⼤⼩⽽决定的。如果扩⼤了分页⽂件,该⽐例就会减⼩)。这个计数器只显⽰当前百分⽐;⽽不是⼀个平均值。
Memory Page
Faults/sec Page Faults/sec是指处理器处理错误页的综合速率。⽤错误页数/秒来计算。当处理器请求⼀个不在其⼯作集(在物理内存中的空间)内的代码或数据时出现的页错误。这个计数器包括硬错误(那些需要磁盘访问的)和软错误(在物理内存的其它地⽅到的错误页)。许多处理器可以在有⼤量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。这个计数器显⽰⽤上两个实例中观察到的值之间的差除以实例间隔的持续时间所得的值。
Network Interface Bytes
Total/sec
Bytes Total/sec是发送和接收字节的速率,包括帧字符在内。
Network
Interface
tablet monitor驱动程序Packets/sec Packets/sec为发送和接收数据包的速率。
Physical Disk % Busy
Time
% Busy Time指磁盘器忙于为读或写⼊请求提供服务所⽤的时间的百分⽐。
Physical Disk Avg. Disk
Queue
Length
Avg. Disk Queue Length 指读取和写⼊请求(为所选磁盘在实例间隔中列队的)的平均数。
Physical Disk Current
Disk Queue
Length
Current Disk Queue Length指在收集操作数据时在磁盘上未完成的请求的数⽬。它包括在快照内存时正在为其提供
服务中的请求。这是⼀个即时长度⽽⾮⼀定间隔时间的平均值。多主轴磁盘设备可以⼀次有多个请求操作,但是其
它同时发⽣的请求为等候服务。这个计数器可能会反映⼀个暂时的⾼或低的列队长度,但是如果在磁盘驱动器存在
持续负载,可能值会总是很⾼。请求等待时间与这个列队的长度减去磁盘上的主轴成正⽐。这个差值应⼩于2才能保持良好的性能。
Logical Disk % Free
Space
% Free Space 是所选定的逻辑磁盘驱动器上总的可⽤空闲空间的百分⽐。
Logical Disk Free
Megabytes可⽤的 MB 显⽰磁盘驱动器上尚未分配的空间。
以下为监控进程常⽤的计数器:
Process对象的主要指标
性能对
计数器提供的信息
Process % Privileged
Time
% Privileged Time 是在特权模式下处理线程执⾏代码所花时间的百分⽐。当调⽤ Windows 系统服务时,此服务经
常在特权模式运⾏,以便获取对系统专有数据的访问。在⽤户模式执⾏的线程⽆法访问这些数据。对系统的调⽤可
以是直接的(explicit)或间接的(implicit),例如页⾯错误或间隔。
Process % Processor
Time
% Processor Time 是所有进程线程使⽤处理器执⾏指令所花的时间百分⽐。指令是计算机执⾏的基础单
位。线程是
执⾏指令的对象,进程是程序运⾏时创建的对象。此计数包括处理某些硬件间隔和陷阱条件所执⾏的代码。
Process% User Time % User Time 指处理线程⽤于执⾏使⽤⽤户模式的代码的时间的百分⽐。应⽤程序、环境分系统和集合分系统是以⽤户模式执⾏的。Windows 的可执⾏程序、内核和设备驱动程序不会被以⽤户模式执⾏的代码损坏。
Process
Creating
Process ID
value
Creating Process ID value 指创建该进程的⽗进程号。
Process Elapsed Time该进程运⾏的总时间(⽤秒计算)。
Process Handle Count由这个处理现在打开的句柄总数。这个数字等于这个处理中每个线程当前打开的句柄的总数。
Process ID Process ID Process 指这个处理的特别的识别符。ID Process 号可重复使⽤,所以这些 ID Process 号只能在⼀个处理的寿命期内识别那个处理。
Process
IO Data
Bytes/sec处理从 I/O 操作读取/写⼊字节的速度。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设备 I/O 的活动计数。
Process
IO Data
Operations/sec本处理进⾏读取/写⼊ I/O 操作的速率。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设备 I/O 的活动计数。
Process
IO Other
Bytes/sec
处理给不包括数据的 I/O 操作(如控制操作)字节的速率。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设备
I/O 的活动计数。
IO Other本处理进⾏⾮读取/写⼊ I/O 操作的速率。例如,控制性能。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设
Process Operations/sec备 I/O 的活动计数。
Process
IO Read
Bytes/sec处理从 I/O 操作读取字节的速度。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设备 I/O 的活动计数。
Process
IO Read
Operations/sec本处理进⾏读取 I/O 操作的速率。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设备 I/O 的活动计数。
Process
IO Write
Bytes/sec处理从 I/O 操作写⼊字节的速度。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设备。
Process
IO Write
Operations/sec本处理进⾏写⼊ I/O 操作的速率。这个计数器为所有由本处理产⽣的包括⽂件、⽹络和设备 I/O 的活动计数。
Process
Page
Faults/sec
Page Faults/sec 指在这个进程中执⾏线程造成的页⾯错误出现的速度。当线程引⽤了不在主内存⼯作集中的虚拟内
存页即会出现 Page Fault。如果它在备⽤表中(即已经在主内存中)或另⼀个共享页的处理正在使⽤它,就会引起⽆
法从磁盘中获取页。
Process Page File
Bytes
Page File Bytes 指这个处理在 Paging file 中使⽤的最⼤字节数。Paging File ⽤于存储不包含在其他⽂件中的由处
理使⽤的内存页。Paging File 由所有处理共享,并且 Paging File 空间不⾜会防⽌其他处理分配内存。
Process
Page File
Bytes Peak
Page File Bytes Peak 指这个处理在 Paging files 中使⽤的最⼤数量的字节。
Process
Pool
Nonpaged
Bytes
Pool Nonpaged Bytes 指在⾮分页池中的字节数,⾮分页池是指系统内存(操作系统使⽤的物理内存)中可供对象(指
那些在不处于使⽤时不可以写⼊磁盘上⽽且只要分派过就必须保留在物理内存中的对象)使⽤的⼀个区域。这个计数
器仅显⽰上⼀次观察的值;⽽不是⼀个平均值。
Process Pool Paged
Bytes
Pool Paged Bytes 指在分页池中的字节数,分页池是系统内存(操作系统使⽤的物理内存)中可供对象(在不处于使⽤
时可以写⼊磁盘的)使⽤的⼀个区域。这个计数器仅显⽰上⼀次观察的值;⽽不是⼀个平均值。
Process Priority Base这次处理的当前基本优先权。在⼀个处理中的线程可以根据处理的基本优先权提⾼或降低⾃⼰的基本优先权。Process Private Bytes Private Bytes 指这个处理不能与其他处理共享的、已分配的当前字节数。
Process Thread Count在这次处理中正在活动的线程数⽬。指令是在⼀台处理器中基本的执⾏单位,线程是指执⾏指令的对象。每个运⾏处理⾄少有⼀个线程。
Process Virtual Bytes Virtual Bytes 指处理使⽤的虚拟地址空间的以字节数显⽰的当前⼤⼩。使⽤虚拟地址空间不⼀定是指对磁盘或主内存页的相应的使⽤。虚拟空间是有限的,可能会限制处理加载的能⼒。
Process Virtual Bytes
Peak
Virtual Bytes Peak 指在任何时间内该处理使⽤的虚拟地址空间字节的最⼤数。
Process Working Set Working Set 指这个处理的 Working Set 中的当前字节数。Working Set 是在处理中被线程最近触到的那个内存页集。如果计算机上的可⽤内存处于阈值以上,即使页不在使⽤中,也会留在⼀个处理的 Working Set中。当可⽤内存降到阈值以下,将从 Working Set 中删除页。如果需要页时,它会在离开主内存前软故障返回到 Working Set 中。
Process Working Set
Peak
Working Set Peak 指在任何时间这个在处理的 Working Set 的最⼤字节数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。