性能测试第一天

  基础认识,从用户角度来说,web系统响应的直观认识:

1、系统架构实现技术

  (1)主要从CDN、负载均衡服务器、网络服务器、应用服务器、缓存服务器、数据库服务器描述;

  (2)CDN:

1 CDN,Content-Distribution-Network
2 内容分发网络
3 是IDC运营商提供的一种婚存服务

  (3)负载均衡服务器:

1 功能:根据设定的规则将来自用户的 请求分配到不同的服务器上
2 常见的负载均衡服务器: 3 LVS 4 Nginx 5 F5:专用的负载均衡服务器

   (4)网络服务器:

功能:1、对请求进行解析
     2、对静态资源进行缓存

常见的网络服务器软件:Nginx    
                  Apache

  (5)应用服务器:

1 功能:应用服务器是项目部署的地方,为项目提供运行环境
2 
3 常见的应用服务器软件:Tomcat
4                   Weblogic
5                   jboos等
6 
7 与性能相关的技术   :内存使用配置

   (6)缓存服务器:

1 功能:对应用程序经常访问的数据库提供缓存服务,将这些平常经常访问的数据缓存到内存中
2 
3 常见的缓存应用软件:Memcache
4                  Redis
5 
6 注意:将对系统整体影响最多的数据放到缓存里面
7    提高缓存的命中率(从缓存中成功读取数据的次数/访问缓存的总次数)

  (7)数据库服务器:

功能:提供数据存储功能

常见的数据库:Mysql、Oracle、db2、infomix、Nosql
1 与性能有关的技术:
21)读写分离
32)分库
43)分表
54)RAID

  注释:(1)  读写分离:主数据库---主数据库只要负责额写入数据

                从数据库--从数据库只要负责查询数据

          主数据库和从数据库之间要进行数据同步,保证数据的一致性,降低单台数据库服务器的I/O量和CPU使用率;

      (2)分库:将子系统或业务的数据存储到单独的数据库服务器上;

      (3)分表:把一张表拆分成多个表,将一个表里面的数据存储到多张表里面

            垂直拆分:垂直拆分,减少的是表的字段数,单个表里面的记录行数没有变;

            水平拆分:水平拆分,减少单个表里面的记录行数,避免单个表记录数据太多;

      (4)RAID:冗余磁盘阵列

            RAID0、RAID1、RAID5(最常用)、提高磁盘的读写性能。

2、性能测试基础

  (1)什么是性能测试?

    性能测试根据协议模拟用户的操作,向服务器产生压力,检查服务器是否有性能方面的问题。(性能测试是基于协议的,与页面无关

  (2)性能测试的种类?

1 负载测试:测试系统在崩溃前可以处理的最大业务能力
2 
3 压力测试:测试系统在搞负载情况下是否可以长时间稳定运行
4 
5 并发测试:测试系统和数据库在并发情况下有没有线程安全问题、资源争用导致的锁问题
6 
7 配置测试:用一套脚本或者场景运行在不同的配置上,以获取系统的最优配置
8 
9 基准测试:获取系统调优前的性能表现,为调优后提供一个比较的标准

  (3)性能测试指标

    重要指标:吞吐量、资源占用、并发用户数、响应时间、业务成功率

吞吐量

单位时间内服务器处理的业务量    
单位:TPS:Transaction Per Second 单位时间内服务器处理的事务量
        HPS:Hits Per Second 单位时间内服务器处理的点击量    
        QPS:Query Per Second  单位时间内服务器处理的查询量

单位时间内的网路数据流量
单位:bit 比特
   Byte 字节
   KB,M
1 资源占用
2 
3 CPU:处理同样的应用CPU使用率越低越好,一般CPU使用率不超过75%
4 
5 内存:一般情况下内存使用率不超过75%
6 
7 磁盘I/O:从系统整体看,对磁盘的读写越少性能越好
8 
9 网络带宽:不能超过网卡提供的带宽
 1 并发用户数
 2 
 3 在线用户数:在线用户不进行操作的情况下,对系统的负载几乎是可以忽略的(在线用户不一定与服务器进行了数据的交互)
 4 
 5 并发用户数:同一时刻与服务器进行数据交互的所有用户数量。
 61)计算并发用户数的时候,一般要转换为并发业务数量
 72)计算并发用户数的时候,一般使用2/8原则:80%的业务是在20%的时间内发生的
 83)比如某网站一天有10万次访问
 94)并发数据来源:新项目:跟PO、PM确定访问用户量
10                        老项目:从历史数据中提取访问数据
11         注:并发是一个瞬时的概念,不是一个过程

一般情况下,可以参考一下办法来确定性能测试时的并发用户数:
      (1)参考其他同类产品;(2)分析历史数据;(3)试上线运行。
1 响应时间(一般的指标为2 5 72 
3 用户角度的响应时间:从提交请求到显示页面     
4 
5 服务器角度的响应时间:从收到请求开始到发出响应结束
6 
7 性能测试过程中的响应时间:从发出请求开始到响应结束

注:以一个web应用的页面响应时间为例,从客户端发送请求到服务处理完成的整个过程如上图所示。从图中可以看出,页面的响应时间可以分解成“网路传输时间”(C1+S2+S3+C4)和“应用服务器处理的时间”(S1+S4),“数据库处理的时间”(d1),所以整个web页面请求的响应时间为C1+S1+S2+d1+S3+s4+c4
1 业务成功率:在涉及到钱的业务中,要优先考虑业务成功率,要保证业务成功率尽量接近100%

注:用户角度的响应时间组成:

  服务器角度的响应时间组成:服务器处理请求的时间+服务器之间传输的时间

  性能测试过程中的响应时间组成:

  (4)性能测试过程

    注:性能测试的介入时间:一般认为性能测试要在系统测试完成之后开始介入,实际上,性能测试可以在产品原型和数据结构设计完成后就开始介入,开始分析表结构和找出最优SQL语句;

    1)确定哪些业务需要纳入性能测试的范围中(用户访问最频繁的、被调用比较多的业务模块、业务重要性高的)

    2)确定性能测试的指标(吞吐量、资源占用、响应时间、并发用户、业务成功率)

    3)人员和进度安排

    4)测试环境准备(测试环境的软件配置与生产环境尽量一样,硬件配置从水平角度进行拆分)

    5)脚本开发

    6)监控,进行性能测试

    7)手机分析结果

    8)定位问题,调优

    9)复测

3、性能测试脚本开发------欲知后事,且听下回分解。

posted @ 2018-02-07 12:47  Yi个人  阅读(390)  评论(0编辑  收藏  举报