参考如下文章:
http://www.cnblogs.com/dreamer-fish/p/3417134.html
《性能测试从0开始》204页起
1.排除内存问题
Memory/ Available MBytes 可用物理内存(参考值:>=10%)(若<4 MB 或更小,总的内存可能不足,或某程序没有释放内存)
Memory/ Pages/sec 表示为了解决硬错误而从硬盘上读取或写入硬盘的页数(参考值:00~20)(若>20,需研究页交换活动,若>80,则表示有问题)
Memory/ Page Faults/sec 表示每秒钟处理的错误页数,包括硬错误和软错误
Memory/ Page Input/sec 表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec),衡量硬错误页发生的速率
Memory/ Page Reads/sec 表示为了解决硬错误而从硬盘上读取的页数。(参考值: <5)(若持续>=5,表可能内存不足)
页交换活动主要关注硬错误,即Page Faults/sec —Transition Fault/sec(软错误)、Page Input/sec、Page Reads/sec。硬错误会使系统的运行效率很快将下来。
Memory/ cache bytes 文件系统缓存,默认为50%可用物理内存。 若内存不够时,会自动整理缓存,需关注其趋势变化。
file cache hits% 文件缓存命中全部缓存需求的比例,反映了iis文件缓存设置的工作情况。(对于一个大部分静态网页组成的网站,在80%左右为好)
Memory/ Committed Bytes 以字节表示的确认虚拟内存(参考值: <=物理内存*75%)
2.怀疑内存泄漏
Process/ Private Bytes、Process/ Working Set 值会升高
Memory/Available Bytes 值降低
private Bytes :进程无法与其他进程共享的字节数量。该计数器的值较大时,有可能是内存泄露的信号
3.检查过于频繁的页交换
由于过多的页交换要使用大量的硬盘空间,因此有可能将导致将页交换内存不足,这容易与导致页交换的磁盘瓶颈混淆。因此,在研究内存不足不太明显的页交换的原因时,您必须跟踪如下的磁盘使用情况计数器和内存计数器:
· Physical Disk/ % Disk Time
· Physical Disk/ Avg.Disk Queue Length
例如如果 Page Reads/sec很低,同时 % Disk Time 和 Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。
但是,如果队列长度Avg.Disk Queue Length增加的同时页面读取速率Page Reads/sec并未降低,则内存不足。
4.处理器
4.1 System/ Processor Queue Length 用于瓶颈检测。处理队列中的线程数(如果该队列的长度大于处理器个数+1,就表示处理器有可能处于阻塞状态(参考值:<=处理器个数+1)
4.2 Processor/ % Processor Time : CPU使用率,显示所有CPU线程处理时间(参考值:<75%. 若一个或多个处理器的该值持续超过90%,则表示此时负载 对于目前硬件过于沉重。)(排除内存原因,若该值大,网卡和硬盘值低,则为CPU瓶颈)
若Processor Queue Length>处理器个数+1,% Processor Time>90%,则可能处理器瓶颈。
若Processor Queue Length>处理器个数+1,% Processor Time很低,则只是处理器阻塞问题。
4.3 System/ context switches/sec 指所有处理器全都从一个线程转换到另一个线程的综合速率。 如果切换次数到5000*CPU个数-10000*CPU个数时,说明他忙于切换线程而不是处理ASP脚本
4.4 Processor/ %DPC Time处理器在网络处理上消耗的时间,该值越低越好。在多处理器系统中,如果这个值大于50%并且%Processor Time非常高,加入一个网卡可能会提高性能。
4.5 Processor/ interrupts/sec 处理器每秒接收并维护的硬件中断的平均值。(如果 % Processor Time >90%,且% interrupts time >15%,则处理器负荷过重,并发生中断)
4.6 Processor/ % User Time是指系统的非核心操作消耗的CPU时间,如果该值较大,可以考虑是否通过优化算法等方法降低这个值。如果该服务器是数据库服务 器,Processor/ % User Time大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化
5 磁盘
如果分析的计数器指标来自于数据库服务器、文件服务器或是流媒体服务器,磁盘I/O对这些系统来说更容易成为瓶颈。
每磁盘的I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。
下表给出了每磁盘I/O的计算公式:(如何得到磁盘标称的I/O能力如何查看? 在bios里查看吗?)
RAID类型 | 计算方法 |
RAID0 | (Reads+Writes)/Number of Disks |
RAID1 | (Reads+2*Writes)/2 |
RAID5 | [Reads+(4*Writes)]/Number of Disks |
RAID10 | [Reads+(2*Writes)]/Number of Disks |
%Disk Time表示磁盘驱动器为读取或写入请求提供服务所用的时间百分比,如果只有%Disk Time比较大,硬盘有可能是瓶颈Average Disk Queue Length表示磁盘读取和写入请求提供服务所用的时间百分比,可以通过增加磁盘构造磁盘阵列来提高性能(<=磁盘数的2倍)
要平衡网络服务器上的负载,需要了解服务器磁盘驱动 器的繁忙程度。使用 Physical Disk/ % Disk Time 计数器,该计数器显示驱动器活动时间的百分比。如果 % Disk Time 较高(超过 90%),请检查 Physical Disk/ Current Disk Queue Length 计数器以查看正在等待磁盘访问的系统请求数量。等待 I/O 请求的数量应当保持在不大于组成物理磁盘的主轴数的 1.5 到 2 倍。
Average Disk sec/Transfer磁盘中写入数据的平均时间,单位是s
计数器反映磁盘完 成请求所用的时间。较高的值表明磁盘控制器由于失败而不断重试该磁盘。这些故障会增加平均磁盘传送时间。一般来说,定义该值小于15ms最为优异,介于 15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或硬盘的RAID方式了
Average Disk Bytes/Transfer
值大于 20 KB 表示该磁盘驱动器通常运行良好;如果应用程序正在访问磁盘,则会产生较低的值。例如,随机访问磁盘的应用程序会增加平均 Disk sec/Transfer 时间,因为随机传送需要增加搜索时间。
========================
计算磁盘IOPS的三个因素:
RAID类型 | 公式 |
RAID5、RAID3 | Drive IOPS=Read IOPS + 4*Write IOPS |
RAID6 | Drive IOPS=Read IOPS + 6*Write IOPS |
RAID1、RAID10 | Drive IOPS=Read IOPS + 2*Write IOPS |
硬盘类型 | IOPS |
FC 15K RPM | 180 |
FC 10K RPM | 140 |
SAS 15K RPM | 180 |
SAS 10K RPM | 150 |
SATA 10K RPM | 290 |
SATA 7.2K RPM | 80 |
SATA 5.4K RPM | 40 |
Flash drive | 2500 |
1) 业务需求: 10TB 的FC 15K RPM存储空间,满足6000 IOPS,计算RAID5,RAID10分别需要多少块硬盘?
首先需要知道I/O中读操作与写操作所占的百分比。 假定6000 IOPS中读/写比是2:1
RAID10:(2/3)*6000+2*(1/3)*6000= 8000 IOPS
RAID5:(2/3)*6000+4*(1/3)*6000=12000 IOPS
参照不同硬盘类型的IOPS值,换算出需要多少块盘:
RAID10:8000 /180 = 45块
RAID5:12000/180 =67块
监测对象:Network Interface
网络分析是一件技术含量很高的工作,在一般的组织中都有专门的网络管理人员进行网络分析,对测试工程师来说,如果怀疑网络是系统的瓶颈,可以要求网络仍有来写真进行网络方面的检测。Network Interface/Bytes Total/sec为发送和接收字节的速率(包括帧字符在内)。可以通过该计数器的值判断网络连接速度是否是瓶颈,具体操作方法是用该计数器的值与目前的网络带宽进行比较。
Byte Total/sec
表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈(参考值:该计数器和网络带宽相除,<50%)
7