阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      网站性能测试

      性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准;

      一.不同视角下的网站性能

      不同视角下的网站性能有不同标准,也有不同的优化手段,主要是下面几点;

      开发人员说的网站性能,通常和用户说的不一样

      1.用户视角

      直观感受:网站响应速度的快慢

      【如图】

      影响因素

      不同计算机的性能差异,不同浏览器解析速度的差异,不同网络运行商提供宽带服务的差异;这些差异最终导致用户感受到的响应延迟可能是大于网站服务器处理时间;

      解决方案

      • 前端架构优化
      • 优化HTML/CSS/JS
      • 利用浏览器端的并发和异步特性
      • 调整浏览器缓存策略
      • CDN服务
      • 反向代理

      使浏览器尽快地显示用户感兴趣的内容,尽可能近的获取页面内容;即使不优化应用程序架构,也可以很大程度的改善用户视角下的网站性能

      2.开发者视角

      影响因素

      开发人员主要关注是对应用程序本身及相关子系统的性能;包括

      • 响应延迟
      • 系统吞吐量
      • 并发处理能力
      • 系统稳定性

      解决方案

      • 使用缓存加速数据读取
      • 使用集群提高吞吐能力
      • 使用异步消息加快请求响应
      • 实现削峰
      • 使用代码优化手段

      3.运维视角

      运维更关注基础设施性能和资源利用率;

      • 网络运营商的带宽能力
      • 服务器硬件的配置
      • 数据中心网络架构
      • 服务器和网络贷款的资源利用率

      优化手段

      • 建设优化骨干网
      • 使用高性价比定制服务器
      • 利用虚拟化技术优化

      二.性能测试指标

      不同视角下不同的性能标准,进而有不同的性能测试指标;

      主要指标有:响应时间/并发数/吞吐量/性能计数

      1.响应时间

      执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间;

      【如图】

      测试程序通过模拟,记录收到响应和发出请求之间的时间差来计算系统的响应时间;

      注意:记录操作也需要一定时间;

      如果需要测试的操作需要花费时间极少(如几微妙),通常采用重复请求,比图重复一万次,测试平均值的办法来计算单词响应时间;

      2.并发数

      系统能够同时处理请求的数目,这个数字反应系统的负载特性;对网站来说,指同时提交请求的用户数目

      网站系统用户数»网站在线用户数»网站并发用户数;(游客仅浏览不操作的前提)

      做促销一定要考虑用户的并发数;

      通过多线程模拟并发用户的办法来测试系统的并发处理能力,为了真实模拟用户行为,会在两次请求之间加入一个随机等待时间,这个时间称为思考时间;

      3.吞吐量

      指单位时间系统处理的请求数量,体现系统的整体处理能力;

      网站性能优化目的:除了改善用户体验的响应时间,还要尽量提高系统吞吐量,最大限度利用服务器资源;

      吞吐量的标准比如

      • “请求数/秒”
      • “页面数/秒”
      • “访问人数/秒”
      • “处理的业务数/小时”
      • TPS(每秒事务数)【重要指标】
      • HPS(每秒HTTP请求数)
      • QPS(每秒查询数)

      并发数-吞吐量-响应时间

      并发数由小逐渐增大过程中,

      吞吐量的变化:

      • 1.吞吐量先是逐渐增加,一直到极限;
      • 2.到极限后,随着并发增加,吞吐量反而下降
      • 3.达到系统崩溃点后,系统资源耗尽,吞吐量为零

      响应时间变化

      • 1.先保持小幅上升
      • 2.快速上升
      • 3.打到系统崩溃点后,系统失去响应

      4.性能计数

      描述服务器/操作系统性能的数据指标;Linux系统使用Top命令查看

      主要指标有

      • System Load
        • 系统负载,指当前正在被CPU执行和等待被CPU执行的进程数目总和
      • 对象和线程数
      • 内存使用
      • CPU使用
      • 磁盘与网络I/O

      三.性能测试方法

      性能测试是一个总称,可以分为性能测试/负载测试/压力测试/稳定性测试

      1.性能测试

      以系统设计初期的性能指标为预期目标,验证系统在资源可接受范围内,是否能打到性能预期

      2.负载测试

      对系统不断增加并发请求以增加压力,直到系统某项或多项性能指标打到安全临界值;(这时候系统处理能力不但不能提高,反而会下降)

      3.压力测试

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

      4.稳定性测试

      为了更好的模拟生产环境:需要在不同环境,不同地点的请求压力是不均匀的,呈波浪特性,不均匀地对系统施加压力;

      【如图】

      四.性能测试报告

      【如图】

      五.性能优化策略

      如果性能测试结果不能满足设计或者业务需要,需要找到瓶颈,分而治之,逐步优化;

      1.性能分析

      必须对请求经历的各个环节进行分析,排查可能出现性能瓶颈的地方,定位问题;

      • 检查请求吹了的各个环节的日志,分析哪个环节响应时间不合理,超过预期
      • 检查监控数据,分析影响性能的主要因素是内存,磁盘,网络,还是CPU,
      • 是代码问题还是架构设计不合理
      • 或者系统资源确实不足

      2.性能优化

      定位产生性能问题的具体原因后,就需要进行性能优化;

      根据网站分层架构,分为:WEB前端性能优化,应用服务器性能优化,储存服务器性能优化

      目录
      目录