zoukankan      html  css  js  c++  java
  • 性能测试调优过程

    1、对魔镜系统的三个场景流程进行性能测试。

    场景1:选择一个已有的项目并打开直接进入到仪表盘--进入到分析台---拖拽度量和维度---依次选择不同的图表类型----保存最后一个图表 ----删除图表---再回到分析台

    测试的步骤

    1、录制脚本,采用loadrunner12录制脚本。:因为系统只支持chrome浏览器,而只有lr12支持chrome浏览器,lr12有免费的50并发用户的liscense,要想测试更多并发,要么多台机器并发要么更换成更低版本的脚本后,再从lr11版本进行场景压力测试。

    1.1 数据准备:因为系统是单点登录,因此要做并发需要参数化不同的用户,

                       a:准备100个登录账号,公司运行jemeter脚本生成的100个用户,

                       b:为100个用户各创建1个相同名称的项目,同时要求这些项目使用的数据源相同,这样拖拽的维度和度量就相同,系统运行自动化功能脚本的方式,为这100个用户创建了100个项目

                       c:通过数据库查询这100个账号下的项目的projectID 和 boardID(仪表盘),跟这些信息相关的还是userID而不是userName,以及chartID。

                      

    2、增强脚本:参数化脚本,username,userID、projectID、boardID以及登陆后的token;

                      a:本来系统不需要测试删除图表的性能,但是还要必须删除呢,因为同一个账号下面的图表,如果不生成就会越来越多,而保存图表的过程还包含了打开仪表盘的过程,因此每保存一次图表就要删除一次,这样才能保证环境统一

                      b:要删除图表因此还需要chartID,因此在生成chartID时候要做关联。

    3、先回放脚本:检测参数化的结果是否正确,可以设定运行时设置的日志,用于查看参数化的值,

    4、再看多个迭代  脚本运行情况:只能看到一个用户的多次迭代情况,不能看出并发时候的迭代情况。

    5、再看多个用户跑一段时间的场景情况:可以看到并发时候的迭代情况

    6、真正的运行场景:

               a:用户的递增时间也很重要,以及运行时间也很重要,根据市场部的场景是供学生使用,一般一堂课就是45分钟,因此运行时间是45分钟;

    7、场景监控

         a:服务器资源监控:阿里云服务器有自己的监控平台,可以找到账号和密码,进入云监控,可以监控到数据服务和应用服务的硬件信息,包括内存和cpu等之类的,

         b:网络监控:本机的网络是否已经达到瓶颈,查看任务管理器

                         本机的网络是否有带宽限制,可以查看路由器的设置,比如在192.168.1.1上进行设置和查看,上传和下载的速度是否已经达到上限,从而

         c:响应时间监控,通过loadrunner监控。

    8、查看分析结果

           a:结果分析得出:保存图表响应时间过长,经过查看网络细分图,得出保存图表长的瓶颈是服务器响应时间过长。

           b:使用的内存一直上升,性能结束后也没有下降,有严重的内存泄漏现象

           c:帮助反馈的视频加载

    9、调优

            a:数据库索引的调优

            b:连接池配置的调优
            c:代码的调优
             其中数据库索引调优效果比较明显
     
            调优过程:
            (1)第一轮测试过程中出现过几次服务器自动关机重新的现象,原因就是tomcat占用内存太高,导致系统根据自己的机制吧tomcat进程给杀掉,导致系统崩掉了,
                     
    简单解释就是  linux存在一个机制   定时的对系统运行的进程进行评分  
    你又打不过我 9:39:40
    评分机制中内存占用的是一个因素 
    你又打不过我 9:39:58
    然后 吧评分最低的kill 掉保证系统稳定 
    你又打不过我 9:40:18
    然后你测试的时候 导致tomcat 暂用的系统内存的 4/3 
    你又打不过我 9:40:26
    然后就被系统kill 了
          (2)给系统服务器的硬件升级,翻倍后升级成2台  4核8G的配置,原来内存只有4G,话说jvm虚拟机就占3G,怀疑是内存太小导致内存回收机制不能正确的执行,导致了内存泄漏;
     
         硬件升级后系统不会在很短的时间内就崩溃了,但是内存泄漏问题仍然存在;响应时间稍微有一点变化,在100用户左右时才有明显的变化,
      (3)提升agent的带宽,原来有5M带宽限制,后来改成不限速,通过对比结果发现TP的响应时间并没有明显的提升,查找原因得出,脚本中有下载视频的操作,因此提升的带宽全部优化到了下载视频上,下载视频占用了很大的带宽,通过跟开发沟通,确定“帮助反馈”的视频是打开页面时自动下载视频,是同步的模式,因此需要调优“帮助反馈的视频”加载方式,改成异步加载,
     
      (4)系统改成异步加载后,再次进行性能测试,发现响应时间有了提高,但是内存泄漏还未解决,
     
      (5)解决内存泄漏问题,即优化代码
      (6)提升保存图表的响应时候:开发代码在保存图表的时候做了一个图表的排序工作,优化后把图表的排序去掉了,同时增加了很多数据库索引
          (7)其中开发用数据库自带的工具,查出了有两条语句耗时很长,
           (8)大大查看了一些数据库语句是嵌套查询, 比如A语句里面嵌套了B语句,A语句循环10次,B语句循环10次,这样嵌套下来要查询100次,势必要增加时间。
     
    通过以上的优化,响应时间和内存泄漏问题都有了很大提升。
     
     
     
     
      
  • 相关阅读:
    20200813质因数分解 --已知正整数n是两个不同的质数的乘积,试求出较大的那个质数 (奥赛一本通 P71 8)
    20200807求梯形面积,要求输入浮点数,输出精度为2位
    c++语言printf()输出格式大全 scanf()输入格式大全
    20200803给出一 名学生的语文和数学成绩,判断他是否恰好有一门课不及格(<60分),如果是输出1;否则输出0(奥赛一本通 p32 10)
    20200803-判断一个数能否同时被3,5,7整除(奥赛一本通 p32 9)
    20200802--利用公式 e=1+1/1!+1/2!+...+1/n!,求e的值, 要求保留小数点后10位(奥赛一本通 p67 2)
    20200802 给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+...+n!),输出阶乘的和 (奥赛一本通p67 1题)
    线程
    mysql逻辑架构
    《python网络数据采集》笔记2
  • 原文地址:https://www.cnblogs.com/amy7758/p/5827010.html
Copyright © 2011-2022 走看看