性能分析

Posted chenxiaomeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能分析相关的知识,希望对你有一定的参考价值。

1、页面加载时间
  从页面开始加载到页面onload事件触发的时间。一般来说onload触发代表着直接通过html引用的CSS,JS,图片资源已经完全加载完毕。
  
2、全部页面加载时间
  全部页面载入时间指从最初启动浏览开始,直到所有元素都被加载完成后,在2秒后仍然没有网络活动的时间。
  0-2秒:用户体验最好,打分100
  2-8秒:用户可以容忍,从第2秒开始,每超过1秒减5分
  8-15秒:用户不能忍受,从第2秒开始,每超过1秒减5分
  
3、首字节时间
  从开始加载到收到服务器返回数据的第一字节的时间
  达标时间=DNS解析时间+创建连接时间+SSL认证时间+100ms.比达标时间每慢10ms减1分.
  0-1秒:用户体验最好
  1-2秒:用户可以容忍
  2-3秒:用户不能容忍
  
4、使用长连接
  连接视图展现了页面加载过程中创建的(keepalive)连接,以及通过每个连接所加载的资源。
  
5、DNS时间
  进行域名解析所需要的时间
  0-50毫秒100分
  50-500毫秒一般,可能会影响用户体验,从50毫秒开始,每增加10毫秒则减去2分
  500毫秒以上,严重影响?用户的网页体验,从50毫秒开始,每增加10毫秒则减去2分
  
6、TCP时间
  客户端建立连接的时间
  0-100毫秒100分
  100-500毫秒,一般,可能会影响用户体验,从100毫秒开始,没增加10毫秒,减去1分
  500毫秒以上,严重影响?用户的网页体验,从100毫秒开始,每增加10毫秒,减去1分
  
7、HTTP网页打分
  页面渲染、下载速度、页面流畅度
  
8、综合评分
  以上评分的加权
  计算值=全部页面载入时间评分*0.2+首字节时间评分*0.2+使用了长连接*0.1+DNS时间评分*0.2+TCP时间评分*0.2+HTTP网页评分*0.1
  
9、其他一些测量指标
  请求时间
  定义:所谓的请求时间是指用户从三次握手到最后一次请求发出的这一段时
  间,这个时间可以用于定位网络问题。
  网络丢包率
  定义:当前的网络的丢包情况统计。
  网络时延
  定义:当前网络的时延。包括RTTc和RTTs。
  RTTc
  用户到探针的传输时延
  RTTs
  探针到服务器的传输时延
  可以关联的其他指标
  受影响的用户数
  所谓受影响,即当该业务的某个指标比较差时,有多少个用户受到影响。通过
  这个指标,可以进而得到具体受到影响的用户是哪些。
  受影响的站点数
  即当网络出现问题,或者是服务器出现问题时,有多少个站点受到影响。通过

  这个指标,可以进而得到具体受到影响的站点是哪些。

 

  还有什么指标呢?
  简单的说一个Web请求的处理包括以下步骤:
  (1)客户发送请求
  (2)webserver接受到请求,进行处理;
  (3)webserver向DB获取数据;
  (4)webserver生成用户的object(页面),返回给用户。给客户发送请求开始到最后一个字节的时间称为响应时间(第三步不包括在每次请求处理中)。
1.事务Transaction
2.请求响应时间
3.事务响应时间
  事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出的.
  例如:跨行取款事务的响应时间就是由一系列的请求组成的.
  事务响应时间是直接衡量系统性能的参数.
4.并发用户数
  并发一般分为2
  种情况。一种是严格意义上的并发,
  即所有的用户在同一时刻做同一件事情或者操作,这种操作一般指做同一类型的业务。比如在信用卡审批业务中,一定数目的拥护在同一时刻对已经完成的审批 业务进行提交;还有一种特例,即所有用户进行完全一样的操作,例如在信用卡审批业务中,所有的用户可以一起申请业务,或者修改同一条记录。
  另外一种并发是广义范围的并发。这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或者操作可以是相同的,也可以是不同的。对整个系统而言,仍然是有很多用户同时对系统进行操作,因此也属于并发的范畴。
  可以看出,后一种并发是包含前一种并发的。而且后一种并发更接近用户的实际使用情况,因此对于大多数的系统,只有数量很少的用户进行“严格意义上的并 发”。对于WEB性能测试而言,这2种并发情况一般都需要进行测试,通常做法是先进行严格意义上的并发测试。严格意义上的用户并发一般发生在使用
  比较频繁的模块中,尽管发生的概率不是很大,但是一旦发生性能问题,后果很可能是致命的。严格意义上的并发测试往往和功能测试
  关联起来,因为并发功能遇到异常通常都是程序问题,这种测试也是健壮性和稳定性测试的一部分。
  用户并发数量:关于用户并发的数量,有2种常见的错误观点。
  一种错误观点是把并发用户数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;还有一种比较接近正确的观点是把在线用户数量理解为 并发用户数量。实际上在线用户也不一定会和其他用户发生并发,例如正在浏览网页的用户,对服务器没有任何影响,但是,在线用户数量是计算并发用户数量的主 要依据之一。
5.吞吐量
  指的是在一次性能测试过程中网络上传输的数据量的总和
  .吞吐量/传输时间,就是吞吐率.
6.tps
7.点击数PV
  每秒钟用户向WEB服务器提交的HTTP请求数.这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB
  应用能够处理的交易的最小单位.如果把每次点击定义为一个交易,点击率和TPS就是一个概念.容易看出,点击率越大,对服务器的压力越大.点击率只是 一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多 个HTTP请求.
8.资源利用率
  性能项命令指标
  CPU限制vmstat当%user+%sys超过80%时
  磁盘I/O限制Vmstat当%iowait超过40%(AIX4.3.3或更高版本)时
  应用磁盘限制iostat当%tm_act超过70%时
  虚存空间少Lsps,-a当分页空间的活动率超过70%时
  换页限制Iostat,stat虚存逻辑卷%tm_act超过I/O(iostat)的30%,激活的虚存率超过CPU数量(vmstat)的10倍时

  系统失效Vmstat,sar页交换增大、CPU等待并运行队列。

响应时间:
  1.利用2-5-8原则去判定
吞吐量:
  1.125*x kb/s*0.5,若小于前面的数值为优,其中x为x Mb/s,例如1 Mb/s
每秒点击数:
  1.指客户端每秒钟向服务器端提交的请求数量,如果客户端发出的请求数量越多,与之相对的平均吞吐量也应该越大
并发用户数:
  1)、经典公式1:
     一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据
      1)平均并发用户数为 C = nL/T
      2)并发用户数峰值 C‘ = C + 3*根号C
        C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度
        C’是并发用户数峰值
举例1,假设系统A,该系统有3000个用户,平均每天大概有400个用户要访问该系统(可以从系统日志从获得),对于一个典型用户来说,一天之内用户从登陆到退出的平均时间为4小时,而在一天之内,用户只有在8小时之内会使用该系统。
  那么,
      平均并发用户数为:C = 400*4/8 = 200
        并发用户数峰值为:C‘ = 200 + 3*根号200 = 243
举例2, 某公司为其170000名员工设计了一个薪酬系统,员工可进入该系统查询自己的薪酬信息,但并不是每个人都会用这个系统,假设只有50%的人会定期用该系统,这些人里面有70%是在每个月的最后一周使用一次该系统,且平均使用系统时间为5分钟。则一个月最后一周的平均并发用户数为(朝九晚五):
      n = 170000*0.5*0.7/5 = 11900
      C= 11900*5/60/8 = 124
      吞吐量计算为:F = Vu * R / T 单位为个/s
         F为事务吞吐量,Vu为虚拟用户数个数,R为每个虚拟用户发出的请求数,T为处理这些请求所花费的时间
  2)、通用公式2:
    对绝大多数场景,我们用(用户总量/统计时间)*影响因子(一般为3)来进行估算并发量。
    比如,以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒 到达地铁检票口的人数为50000*80%/(3*60*60)=3.7,约4人/S,考虑到安检,入口关闭等因素,实际堆积在检票口的人数肯定比这个要 大,假定每个人需要3秒才能进站,那实际并发应为4人/s*3s=12,当然影响因子可以根据实际情况增大!
  3)、根据PV计算公式:
    比如一个网站,每天的PV大概1000w,根据2/8原则,我们可以认为这1000w pv的80%是在一天的9个小时内完成的(人的精力有限),那么TPS  为:
    1000w*80%/(9*3600)=246.92个/s,取经验因子3,则并发量应为:
    246.92*3=740
  4)、根据TPS估计:
     公式为 C = (Think time + 1)*TPS
  5)、根据系统用户数计算:
     并发用户数 = 系统最大在线用户数的8%到12%
资源使用率:
  1).平均事务响应时间
  Average Transation Response Time优秀:<2s
  良好:2-5s
  及格:6-10s
  不及格:>10s
  2).每秒点击率
  Hits per Second
  当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈大体一致,则系统基本稳定若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓慢,甚至平坦,很可能是网络出现带宽瓶颈.同理若点击率/TPS曲线出现变化缓慢或者平坦,说明服务器开始出现.
  3).请求响应时间
  Time to Last Byte
  4).每秒系统处理事务数
  Transaction per second
  5).吞吐量
  Throughout
  6).CPU利用率
  Processor/%Processor Time好:70%
  坏:85%
  很差:90%+
  7).数据库操作消耗的CPU时间
   Processor/%User Time如果该值较大,可以考虑是否能通过友好算法等方法降低这个值。如果该服务器是数据库服务器,Processor\%User Time值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。
  8).核心态CPU平均利用率
  Processor/%Privileged Time如果该参数值和"Physical Disk"参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统
  9).处理列队中的线程数
   Processor/Processor Queue Length如果该值保持不变(>=2)个并且%Processor Time超过90%,那么可能存在处理器瓶颈。如果发现超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶 颈。
  10).文件系统缓存
  Memory/Cache Bytes 50%的可用物理内存
  11).剩余的可用内存
  Memory/Avaiable Mbytes至少要有10%的物理内存值
  本文出自51Testing软件测试网,感谢会员fmsbai5在每周一问(08-12-29)中的精彩回答。http://bbs.51testing.com/forum-157-1.html
  12).每秒下载页数
  Memory/pages/sec好:无页交换
  坏:CPU每秒10个页交换
  很差:更多的页交换
  13).页面读取操作速率
  Memory/page read/sec如果页面读取操作速率很低,同时%Disk Time和Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。
  14).物理磁盘利用率
  Physical Disk/%Disk Time好:<30%
  坏:<40%
  很差:<50%+
  15).物理磁盘平均磁盘I/O队列长度
  Physical Disk/Avg.Disk Queue Length该值应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘
  16).网络吞吐量
  Network Interface/Bytes Total/sec判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽,结果应该小于50%
  17).数据高速缓存区命中率命中率应大于0.90最好
  18).共享区库缓存区命中率命中率应大于0.99
  19).监控SGA中字典缓冲区的命中率命中率应大于0.85
  20)检测回滚段的争用小于1%
  21).监控SGA中重做日志缓存区的命中率
  应该小于1%
  22).监控内存和硬盘的排序比率最好使它小于10%

以上是关于性能分析的主要内容,如果未能解决你的问题,请参考以下文章

Mysql-性能分析-Profiling

xhprof性能分析工具安装与使用

性能分析之解析 RESAR 性能分析七步法

性能分析之解析 RESAR 性能分析七步法

性能分析之解析 RESAR 性能分析七步法

mysql性能瓶颈分析性能指标指标搜集方法与性能分析调优工具