软件性能测试(连载5)
- 2020 年 2 月 19 日
- 笔记
2性能监控
2.1Windows的性能监控
Windows计数器见表3-2所示。
表3-2 Windows计数器
类别 |
计数器名称 |
描述 |
---|---|---|
System |
%Total Processor Time |
系统中所有处理器都处于繁忙状态的时间百分比,对于多处理器系统来说,该值可以反映所有处理器的平均繁忙状态,该值为100%,如果有一半的处理器为繁忙状态,该值为50%。 |
Process Queue Length |
线程在等待分配CPU资源所排队列的长度,此长度不包括正在占有CPU资源的线程。 |
|
File Data Operations/sec |
计算机对文件系统进行读取和写入操作的频率,但是不包括文件控制操作 |
|
Processor |
%Processor Time |
CPU利用率,该计数器最为常用,可以查看处理器是否处于饱和状态,如果该值持续超过 95%,就表示当前系统的瓶颈为CPU,可以考虑增加一个处理器或更换一个性能更好的处理器。 |
%Priviliaged Time |
CPU在特权模式下处理线程所花的时间百分比。一般的系统服务,进程管理,内存管理等一些由操作系统自行启动的进程属于这类 |
|
%User Time |
与%Privileged Time计数器正好相反,指的是在用户状态模式下(即非特权模式)的操作所花的时间百分比。 |
|
%DPC Time |
处理器在网络处理上消耗的时间,该值越低越好。 |
|
Process |
%Processor Time |
进程的所有线程在每个处理器上的处理器时间总和。 |
private Bytes |
进程无法与其他进程共享的字节数量。该计数器的值较大时,有可能是内存泄露的信号 |
|
Work set |
最近处理线程使用的内存页 |
|
Memory |
Available Mbytes |
剩余的可用物理内存,单位是兆字节 |
Pages reads/sec |
表示为了解决硬错误而从硬盘上读取的页数。 |
|
Pages writes/sec |
Page Writes/sec是指为了释放物理内存空间而将页写入磁盘的次数 |
|
Pages Input/sec |
表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec) |
|
Pages Output/sec |
Pages Output/sec是指为了释放物理内存空间而写入磁盘的页数如果该值远远大于Pages Input/sec,可能有内存泄漏 |
|
Pages/sec |
表示为了解决硬错误而从硬盘上读取或写入硬盘的页数 |
|
Page Faults/sec |
当处理器在内存中读取某一页出现错误时,就会产生缺页中断,也就是 page Fault。如果这个页位于内存的其他位置,这种错误称为软错误,用Transition Fault/sec 来衡量;如果这个页位于硬盘上,必须从硬盘重新读取,这个错误成为硬错误。硬错误会使系统的运行效率很快降下来。Page Faults/sec这个计数器就表示每秒钟处理的错误页数,包括硬错误和软错误。 |
|
Cathe Bytes |
文件系统的缓存(默认为50%的可用物理内存) |
|
Network interface |
Bytes received/sec |
该数据结合Bytes total/sec参看 |
Bytes sent/sec |
该数据结合Bytes total/sec参看 |
|
Bytes total/sec |
表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈 |
|
Packets/sec |
根据实际数据量大小,无建议阈值,该数据结合Bytes total/sec参看 |
|
Physical disk |
Disk reads/sec |
取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格 |
Disk writes/sec |
取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格Disk reads/sec+ Disk writes/sec应小于磁盘设备的最大容量 |
|
%Disk Time |
表示磁盘驱动器为读取或写入请求提供服务所用的时间百分比。 |
|
Average Disk Queue Length |
表示磁盘读取和写入请求提供服务所用的时间百分比,可以通过增加磁盘构造磁盘阵列来提高性能(<=磁盘数的2倍) |
|
Average Disk Read Queue Length |
表示磁盘读取请求的平均数 |
|
Average Disk write Queue Length |
表示磁盘写入请求的平均数 |
|
Average Disk sec/Read |
磁盘中读取数据的平均时间,单位是秒 |
|
Average Disk sec/Transer |
磁盘中写入数据的平均时间,单位是秒 |
如图3-12所示,Windows专门提供了性能计数器查看的界面。
1. CPU
•System。
Ø%Total Processor Time。
服务器整体的处理器利用率,如果持续>80%可能存在性能等问题了。
ØProcess Queue Length。
线程单元中的处理器队列的即时长度,如果大于CPU数量+1,说明处理器处于堵塞状态。
•Processor。
Ø%DPC Time。
处理器在网络处理上消耗的时间,这个字越低越好。如果大于50% 并且 Processor Time很高。可能网卡性能发生了问题。
Ø%User Time。
非核心操作消耗CPU时间,如果比较大,就要考虑优化程序算法,如果是数据库服务器考虑优化数据库优化。
2. 内存
•Memory
ØAvailable Mbytes。
剩余的可用物理内存。在Windows中内存可分为0内存、空闲内存、已缓存内存和忙内存。0内存是防止后面的内存看到前面的内存。已缓存内存是指先被系统核心进程注册的内存,如果系统核心进程需要运行,它会首先使用已缓存内存。这里的剩余的可用物理内存是指空闲内存+已缓存内存,建议不小于总内存的10%。
Øpages/sec。
硬件页面错误导致从磁盘取出的页面数。参考值为00~20。
Øpages Read/sec。
页的硬故障。这个值不应该超过5。
ØPage Faults。
处理器页面错误计数。这个值大说明操作系统向内存读取错误数据过多。
•Physical disk。
Ø%Disk Time。
所选磁盘忙于读写请求服务所用的时间百分比,正常值<0.5。
ØAverage Disk R/D Queue Length。
读取(写入)请求(队列)的平均数,正常值<0.5。
注意。
•如果pages/sec很低并且%Disk Time &Average Disk R/D Queue Length很高说明磁盘存在问题。
•Average Disk R/D Queue Length长度增加然而pages Read/sec未降低说明内存不足。
3. 磁盘I/O
由于RAID的类型,磁盘的I/O数的计算方法如下表3-3所示。
表3-3 磁盘的I/O数的计算方法
RAID类型 |
计算方法 |
---|---|
RAID0 |
(Reads+Writes)/Number of Disks |
RAID1 |
(Reads+2×Writes)/2 |
RAID5 |
(Reads+4×Writes)/Number of Disks |
RAID10 |
(Reads+42×)/Number of Disks |
扩展阅读:RAIDRAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。 |
|
---|---|
|
|
|
|
•Physical disk。
Ø% Disk Time。
如果只有%Disk Time高,说明磁盘遇到了瓶颈;如果Physical disk中其他值都高,说明有内存泄露。
Ø% Average Disksec/Transer。
0-15ms:优秀、15-30ms:良好、30-60ms:可以接受、>60ms:考虑更换硬盘或硬盘RAID方式。
4. 进程
•Process。
Ø%ProcessorTime。
查看哪些进程占有时间最长。
ØPageFailure/sec。
进程产生的页故障与系统产生的相比较,以判断该进程对系统页故障的影响。与Memory中的Page Faults/sec 比值来判断那个进程产生的页面时效最多。
ØPrivate Bytes。
是指进程所分配的无法与其他进程共享的当前字节数量。如果这个值持续增长或者性能测试终止后这个值仍旧不降,说明发生了内存泄露。
5.网络
•Network interface。
Ø Bytestotal/sec。
该计数器和网络带宽相除得到的百分比,建议<50%。
•网络其他指标请参看参考SNMP。