方法2:根据Physical Disk 值分析性能瓶颈
【监控指标】:Memory Available MBytes ,Pages read/sec,%Disk Time 和 Avg.Disk Queue Length
【参考值】:%Disk Time建议阈值90%
当内存不足时,有点进程会转移到硬盘上去运行,造成性能急剧下降,而且一个缺少内存的系统常常表现出很高的CPU利用率,因为它需要不断的扫描内存,将内存中的页面移到硬盘上。
怀疑内存泄漏时
【监控指标】:Memory Available MBytes ,Process\Private Bytes和Process\Working Set,PhysicalDisk/%Disk Time
【说明】:
Windows资源监控中,如果Process\Private Bytes计数器和Process\Working Set计数器的值在长时间内持续升高,同时Memory\Available bytes计数器的值持续降低,则很可能存在内存泄漏。内存泄漏应该通过一个长时间的,用来研究分析当所有内存都耗尽时,应用程序反应情况的测试来检验。
CPU分析
【监控指标】:
System %Processor Time CPU,Processor %Processor Time CPU
Processor%user time 和Processor%Privileged Time
system\Processor Queue Length
Context Switches/sec 和%Privileged Time
【参考值】:
System\%Total processor time不持续超过90%,如果服务器专用于SQL Server,可接受的最大上限是80-85% ,合理使用的范围在60%至70%。
Processor %Processor Time小于75%
system\Processor Queue Length值,小于CPU数量的总数+1
Windows资源监控中,如果% Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。
Processor%Privileged Time该参数值一直很高,且如果在 Physical Disk 计数器中,只有%Disk time 比较大,其他值都比较适中,硬盘可能会是瓶颈。若几个值都比较大, 那么硬盘不是瓶颈。若数值持续超过80%,则可能是内存泄露。如果 Physical Disk 计数器的值很高时该计数器的值(Processor%Privileged Time)也一直很高, 则考虑使用速度更快或效率更高的磁盘子系统。
Disk sec/Transfer 一般来说,该数值小于15ms为最好,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或是硬盘的RAID方式了.作者: caiw0418 时间: 2011-3-16 16:19
Average Transaciton Response Time(事务平均响应时间)随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势
Transactions per Second(每秒通过事务数/TPS)当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈
Hits per Second(每秒点击次数)通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。
Throughput(吞吐率)可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。
Connections(连接数)当连接数到达稳定状态而事务响应时间迅速增大时,添加连接可以使性能得到极大提高(事务响应时间将降低)
Time to First Buffer Breakdown(Over Time)(第一次缓冲时间细分(随时间变化))可以使用该图确定场景或会话步骤运行期间服务器或网络出现问题的时间。作者: futogether 时间: 2011-3-17 10:40
其实,看到这个题目,个人对问题的理解有以下两个方面
1、拿到一个产品,通过测试方法确定是哪种性能瓶颈。如:CPU瓶颈、内存不足、数据库死锁等等
2、已经能预测到是哪些地方能出现性能瓶颈,通过测试方法具体定位造成这种性能瓶颈的原因。如:已确定内存泄露是瓶颈,那可能造成内存泄露的原因是什么,如何定位内存泄露的本源。
这里为大家介绍一些基本工具,下述工具源于网络收集。欢迎其他同学补充。
Quest on Websphere:监控web service
quest UNIX:监控unix
webspere:监控webspace
spotlight:操作系统监控工具。
jconsole:jmx方式诊断;java自带的诊断jvm的工具[java1.5以上版本都有,同Quest on Websphere原理一样]
performasure:bci方式诊断;对jvm进行诊断,可到java代码一级
Jwebap:bci方式诊断;开源的工具;用于J2EE工程(EJB以及WebModule系统)进行性能监控的组件.
JProfiler:是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序.
cacti: 网络流量监控。
foglight:Quest 的高级应用监控解决方案,可以对所有影响 IT 性能的服务器、数据库、操作系统、 Web Sever 和网络进行监控和管理。
rational purifyPlus:针对C#的工具;
lambda probe:tomcat监控工具。
数据库方面,大部分数据库都自带强大的监控工具,暂不做介绍。
附一:性能数据收集关键点
客户端性能指标:并发用户数、事务响应时间、每分钟事务数
非客户端性能指标:服务器资源、网络资源
操作系统:例如Windows平台、Unix平台
数据库服务器:例如Oracle、DB2、Sybase、 SQLServer
中间件服务器:例如WebSphere、WebLogic
网络:带宽利用率、延迟、丢包、传输错误等
oracle数据库:
内存利用:
db block gets
db block changes
global cache gets
global cache get time
事件统计:
enqueue waits
shared hash latch upgrades - no wait
shared hash latch upgrades - wait
redo log space wait time
SQL分析:
table scan rows gotten
table scans(long tables)
table scans(short tables)
index fast full scans (full)
会话统计:
session logical reads
session stored procedure space
CPU used by this session
session connect time
附二:性能分析关键点
响应时间
并发用户数
吞吐量
cpu
内存和高速缓存
磁盘
中间件服务器性能
数据库服务器性能
在应用程序级,用LR的页面细分
看一下Time to First Buffer,看是服务器问题还是网络问题,一般都是服务器端(排除另一个)
找响应时间长的页面,看下Download Time,Component,注意到页面上有类元素加载次数较多,虽然单个的加载时间极短,但由于重复个数较多,所以总页面响应时间上去了。查看这个元素,是一棵树上的节点,由开发静态走查涉及的程序块,发现一次性把整个节点树都加载到页面了,在小数据量情况下问题不明显,但大数据量下对性能影响很大。另外就是最白盒检查,分析哪些函数调用次数比较多,有一些专门工具辅助。