• 网站性能测试指标及网站压力测试


    1. 一般衡量网站性能有哪些指标?
    性能指标主要有响应时间,吞吐量,并发量,性能计数器。
    1)响应时间
    指应用执行一个操作需要的时间,即从发出请求到最后收到响应数据所需要的时间。
    系统常用操作响应时间表
    操作
    响应时间
    打开一个网站
    几秒
    数据库查询一条记录(有索引)
    十几毫秒
    机械磁盘一次寻址定位
    4毫秒
    从机械磁盘顺序读取1M数据
    2毫秒
    从SSD磁盘顺序读取1M数据
    0.3毫秒
    从远程分布式换成Redis读取一个数据
    0.5毫秒
    从内存读取1M数据
    十几微秒
    Java程序本地方法调用
    几微秒
    网络传输2Kb数据
    1微秒
    实践中通常采用的办法是重复请求,比如一个请求操作重复执行1万次,测试一万次执行的总响应时间之和,然后除以1万,就得到单次请求的响应时间。
    2)吞吐量
    指单位时间内系统处理的请求数量,体现系统的整体处理能力。对于网站,可用“请求数/秒”、“页面数/秒”或“访问人数/天”、“处理业务数/小时”等来衡量。重要指标有TPS(每秒处理的事物数)、QPS(每秒查询的请求数)、HPS(每秒HTTP请求数)等。
    3)并发量
    指系统能够同时处理的请求的数目,这个数字反映了系统的负载性能。对于网站而言,并发数指网站用户同时提交请求的用户数目。
    4)性能计数器
    描述服务器或操作系统性能的一些数据指标。如System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等使用情况。通过对这些指标设置报警阈值,当监控系统发现性能计数器超过阈值时,就向开发人员和运维报警,及时发现异常并处理。
     
    2. 怎么测试网站性能?
    性能测试具体可以细分为性能测试、负载测试、压力测试、稳定性测试。
    1)性能测试
    以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内是否能达到预期。
    2)负载测试
    对系统不断增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,这时继续对系统施加压力,系统的处理能力不但不会提高,反而会下降。
    3)压力测试
    超过安全负载的情况下,对系统施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。
    4)稳定性测试
    被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检验系统是否稳定。
     
    3. 怎么进行压力测试?
    压力测试工具有http_load、apache ab、siege。
    1)http_load
    下载:http://acme.com/software/http_load/(点击Fetch the software即可)
    安装:
    yum -y install gcc gcc-c++            #安装GCC编辑器--若已安装请忽略
    tar xzvf http_load-09mar2106.tar.gz   #解压http_load压缩包
    cd http_load-12mar2006                #进入http_load目录
    mkdir /usr/local/man                  #创建目录
    make && make install                  #编译并安装

    命令格式:

    http_load -p 并发访问进程数 -f 访问总数 需要访问的URL文件 
    http_load -r 每秒访问频率 -s 访问时间 需要访问的URL文件
    // 参数说明:通常参数pf一起使用,参数rs一起使用。
    -parallel 简写 -p :并发的用户进程数。
    -fetches 简写 -f : 总计的访问次数。
    -rate 简写 -r : 每秒的访问频率。
    -seconds 简写 -s :总计的访问时间。

    使用:

    新建一个urls.txt,urls.txt 是一个url 列表,每个url 单独的一行。
    在文件中加入一行:http:/.wwwkwx.gd/(不能有任何空格存在,否则会报unknown protocol )
    ① 测试网站是否能承受住预期的访问压力
    执行http_load -rate 5 -seconds 10 urls.txt,含义为在10秒内保持一定的频率访问目标url。
     
    结果分析:
    41 fetches, 1020 max parallel, 851898 bytes, in 10.0008 seconds
    # 一共请求连接41次,最大并发线程1020个,持续10.0008秒内,总传输速率为 851898bytes 
    20778 mean bytes/connection
    #每次请求连接平均数据量(851898÷41)
    4.09969 fetches/sec, 85183.3 bytes/sec
    #每秒的响应请求连接数为4.09969个,每秒传输的数据为85183.3btyes/毫秒
    msecs/connect: 264.607 mean, 269.482 max, 262.187 min
    #每次连接平均响应时间:264.607毫秒,最大时间:269.482毫秒,最小时间:262.187毫秒
    msecs/first-response: 1949.27 mean, 5394.21 max, 380.501 min
    #每次连接平均返回时间:1949.27毫秒,最大时间:5394.21毫秒,最小时间:380.501毫秒
    HTTP response codes:
    code 200 -- 41
    #HTTP返回码:200 ,一共41次。
    主要参考fetches/sec、msecs/connect数值,
    前者对应QPS,表示每秒的响应请求数,后者对应response time,表示每个连接的响应时间。
  • 相关阅读:
    建模时选择SVM还是LR?
    decision_function详解
    HIVE SQL与SQL的区别
    数据不平衡如何处理
    Spring Boot 两步集成 日志收集ELK与分布式系统监控CAT
    Web Application Integrate with Box
    字符编解码的故事(ASCII,ANSI,Unicode,Utf-8区别)
    SharePoint Client Api Search user 几种方法
    C#,反射和直接调用的效率差别
    System.Data.SqlClient.SqlConnectionStringBuilder 链接字符串的问题
  • 原文地址:https://www.cnblogs.com/ivy-zheng/p/10941185.html
Copyright © 2020-2023  润新知