zoukankan      html  css  js  c++  java
  • 性能测试晋级教程

    一、 你所关心的性能

    从用户的角度,性能就是用户在浏览器上直观感受网站的响应速度。包括:计算机和服务器的通讯时间,服务器的处理时间,用户浏览器解析与渲染时间。

    从运维的角度,性能就是服务器资源利用率是否满足性能需求的指标。

    二、 性能测试指标

    响应时间:指应用程序执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。
    并发数:指系统能够同时处理请求的数。
    吞吐量:指单位时间内系统处理请求的数量。
    加载时间:浏览器页面元素渲染时间,包括动态请求与js、css、jpg等。

    指标分析:

    指标

    说明

    评分标准

    备注

    页面载入时间  

    从页面开始加载

    到页面onload事件触发的时间。

    一般来说onload 触发代表着直接

    通过HTML引用的

    CSS,JS,图⽚片资源已经完全加载完毕。

    N/A

    总时间=DOM ready + 元素渲染时间

    全部页面载入时间

    全部页面载入时间指从最初启动浏览开始,直到所有元素都被加

    载完成后,在2秒后仍然没有网络活动的时间。

    0-2秒:用户体验最好,打分100

    2-8秒:用户可以容忍,从第2秒开始,

    每超过1秒减5分

    8-15秒:⽤用户不能忍受,从第2秒开始,每超过1秒减5分

    我们系统中没有页面载入时间的概念,只有持续时间。若雷亮的超时机制做得好,最多误差2sec,因此,这个2sec的误差,我们在实际展示中可以去掉。

    首字节时间

    从开始加载到收到服务器返回数据的第一字节的时间

    达标时间=DNS 解析时间+创建

    连接时间+SSL认

    证时间

    +100ms. 比达标时间每慢10ms 减1分.

    0-1秒:用户体验最好

    1-2秒:用户可以容忍

    2-3秒:用户不能容忍

    达标时间中无法统计的值直接计算为0

    对于每一个页面,我们才计算首字节下载时间

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    指标

    说明

    评分标准

    备注

    使用长连接

    连接视图展现了 页面加载过程中创建的(keep-

    alive)连接,以及通过每个连接所加载的资源。

    N/A

    一般我们认为使用了长连接更好

    DNS时间

    进行域名解析所需要的时间

    0-50毫秒 100分

    50-500毫秒 ⼀一般,可能会影响⽤用户体验,从50 毫秒开始,每增加10毫秒则减去

    2分

    500毫秒以上,严重影响用户的

    网页体验,从50 毫秒开始,每增加10毫秒则减去

    2分

    我们只取我们监测页面的第一个DNS解析的时间作为基准

    TCP时间

    客户端建立连接的时间

    0-100毫秒 100 分

    100-500毫秒,一般,可能会影响用户体验,从 100毫秒开始,没增加10毫秒,减去1分

    500毫秒以上,严重影响用户的

    网页体验,从

    100毫秒开始,每增加10毫秒,减去1分

    我们只取监测页面的第一个TCP建立连接的时间作为基准

    指标

    说明

    评分标准

    备注

    HTTP网打分

    暂时考虑采下载的速度

    100KB/s以上,

    用户体验最好,

    100分

    1-100KB/s,用户体验可以接

    受,从100开始做减法,每下降

    1KB/s,扣1分

    小于1KB/s,户以后再也不会

    来你的网站了,0 分

    总的网页小

    (KB)除以(网落的持续时间-2秒)

    综合评分

    以上评分的加权计算值=全部页

    面载入时间评分 *0.2+首字节时间评分*0.2+使

    用了长连接

    *0.1+DNS时间评分*0.2+TCP

    时间评分

    *0.2+HTTP网页评分*0.1

    80分以上为用户体验佳

    60-80分为用户体验一般

    小于60分为用户体验差

    由于每个被加权值,都对⽤用户的体验,会造成不小的影响,因此加权值的考虑都差不多大小。

    我们既可以将所有的评分单独展示,并支持用户的点击查看具体的详情,支持对网 页问题的深度分析,也可以对网页进行综合评分的展⽰示。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    详情见:http://www.cnblogs.com/Javame/p/4398838.html 

        http://www.cnblogs.com/Javame/p/3880097.html

     

    三、性能测试阶段

    指标测试:以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受的范围内,是否达到性能预期。


    负载测试:对系统不断地增加请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值。


    压力测试:过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。


    稳定性测试:被测系统在特定硬件、软件、网络环境下,给系统加载一定业务压力,使系统运行一段较长时间,以检测系统是否稳定。

     相关笔记:http://www.cnblogs.com/Javame/archive/2012/11/01/2749075.html

          http://www.cnblogs.com/Javame/archive/2013/03/18/2965923.html

    四、性能优化策略
    1.性能分析
    有效的性能分析有利于减少排查范围

    jconsole:http://www.cnblogs.com/Javame/p/3881187.html

    Analyze:http://www.cnblogs.com/Javame/p/3880097.html

    Linux   :http://www.cnblogs.com/Javame/p/3725149.html

    五、Web前端性能优化
    1.浏览器访问优化
     (1).减少http请求.在服务器端,每次Http请求都需要启动独立的线程去处理,这些通信和服务的开销都很昂贵,减少HTTP请求的数目可有效提高访问性能跟。减少HTTP请求的主要手段是合并CSS、合并Javascript、合并图片。
     (2).使用浏览器缓存.将静态文件缓存在浏览器中,可以极好的改善性能。
     (3).启用压缩.在服务器端对文件进行压缩,在浏览器端对文件进行解压缩,可以有效减少通信传输的数据量。但是压缩对服务器和浏览器产生一定的压力,在通信宽带良好,而服务器资源不足的情况下要权衡考虑。
     (4).CSS放在页面最上面、Javascript放在页面最下面
     (5).减少Cookie传输.一方面,Cookie包含在每次请求和相应中,太大的Cookie会严重影响数据传输,因此尽量减少Cookie中传 输的数据量。另一方面,对于某些静态资源访问,发送Cookie没有意义,可以考虑静态资源使用独立域名访问,避免请求静态资源时发送Cookie,减少 Cookie传输次数。
    2.CDN加速(OSS)


    3.LB负载

    LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案

    相关笔记:http://www.cnblogs.com/Javame/p/3718228.html

    六、服务后端性能优化

    技术架构实现分布式单一化微服务,将纵向设计转变横向设计。


    一个整体中总是有一些部分会被频繁的调用,也是压力和瓶颈的所在。这个部分可以被创建多个运行实例,以实现负载均衡。而这如果要在传统的铁板一块的系统中实现,是很笨拙的,因为他的复制是整体的。

  • 相关阅读:
    win32 tcp文件传输客户端
    Android窗口管理服务WindowManagerService对输入法窗口(Input Method Window)的管理分析
    和菜鸟一起深入学习国嵌实验之vim常用命令
    和菜鸟一起深入学习国嵌实验之linux常用命令
    和菜鸟一起深入学习国嵌实验之文件编程
    和菜鸟一起深入学习国嵌实验之gcc分步编译&&gdb调试
    和菜鸟一起深入学习国嵌实验之简单Makefile
    获得创建表脚本
    oralce中获得创建脚本
    所有数据库连接字符串
  • 原文地址:https://www.cnblogs.com/Javame/p/5881604.html
Copyright © 2011-2022 走看看