IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 性能压测(理论) -> 正文阅读

[网络协议]性能压测(理论)

相关指标

  • QPS(Queries Per Second):每秒能够响应的查询次数,也即是最大吞吐能力(吞吐量)。

    类似于TPS,只是应用于特定场景的吞吐量

    计算公式:

    1. QPS(TPS)= 并发数/平均响应时间
    2. 并发数 = QPS*平均响应时间
  • TPS(Transactions Per Second):每秒处理的事务数目。一个事务是指一个客户端向服务器发送请求然后服务器做出反应的过程。TPS 的过程包括:客户端请求服务端、服务端内部处理、服务端返回客户端。
    例如,访问一个页面会请求服务器 3 次,那么访问这一个页面就会产生一个TPS,三个QPS。

    QPS与TPS的区别:

    qps为服务端每秒能执行的查询总数,比如请求一个页面,页面会有很多js,png,css等需要加载,这样的每个都算一个QPS,所以正常一个页面请求都一个TPS,如果页面有N内部请求,就有N个QPS。除非当前页面就一个html页面,其他请求都没有,那QPS=TPS。

    通过一个实例来把上面几个概念串起来理解。按二八定律来看,如果每天 80% 的访问集中在 20% 的时间里,这 20% 时间就叫做峰值时间。

    • 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
    • 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

    1、每天300w PV 的在单台机器上,这台机器需要多少QPS?
    ( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

    2、如果一台机器的QPS是58,需要几台机器来支持?
    139 / 58 = 3

    QPS一般反映服务端系统的吞吐量,偏向于查询数据。
    ————————————————
    理解QPS、TPS、RT、吞吐量_ZERO-CSDN博客_qps rt

  • RT(响应时间):响应时间是指系统对请求作出响应的时间。它完整地记录了整个计算机系统处理请求的时间。

  • 并发用户数 :并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标

  • 吞吐量:系统的吞吐量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个request 对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。

引用链接:系统压力测试(一)

压测目的

  1. 负载测试:
    一种验证性测试,它的目的是验证预设负载条件下的性能表现是否达到性能目标(可用性、并发数/RPS、响应时间等),在达到性能目标之后不会继续增加负载。
  2. 稳定性测试:
    负载测试的一个子集,侧重于发现、验证只有经过长时间的运行才会暴露的问题。比如内存泄漏、FGC 等。
  3. 压力测试:
    一种破坏性测试,尝试探测应用或者基础设施的极限能力。因此压力测试过程中会一直增加负载直到部分性能指标不再符合性能预期。压力测试能发现仅在高负载条件下出现的同步问题、竞争条件、内存泄漏等。通过压力测试我们还可以确定应用服务在什么条件下会变得不可用,不可用的现象,以及可以通过哪些监控指标来监控即将发生的不可用,压测结果通常可以为限流等管控系统提供数据支撑。
  4. 容量测试:
    往往与容量规划一起进行,是在保证用户体验不受影响(稳定性)的前提下,使有限的资源的利用率最大化(成本)。也可以用它来预估未来用户量增长到某个量级的情况下,需要多少资源(例如处理器、内存、磁盘、网络带宽)来支持。

压测工具

市场流行的压测工具有:Apache Bench(ab)、LoadRunner、JMeter、阿里云PTS,其优缺点对比如下:

压测工具Apache Bench(ab)LoadRunnerJMeterPTS
学习成本
安装部署成本
是否免费
是否支持多协议
压测结果是否能够图形化展示
是否支持TPS模式
是否有链路、场景编排管理支持
是否支持场景录制
生态环境强弱
监控指标是否完备
是否原生支持流量地域定制

如何选取压测工具

  1. 确定性能压测目标:性能压测目标可能源于项目计划、业务方需求等

  2. 确定性能压测环境:为了尽可能发挥性能压测作用,性能压测环境应当尽可能同线上环境一致

  3. 确定性能压测通过标准:针对性能压测目标以及选取的性能压测环境,制定性能压测通过标准,对于不同于线上环境的性能压测环境,通过标准也应当适度放宽

  4. 设计性能压测:编排压测链路,构造性能压测数据,尽可能模拟真实的请求链路以及请求负载

  5. 执行性能压测:借助性能压测工具,按照设计执行性能压测

  6. 分析性能压测结果报告:分析解读性能压测结果报告,判定性能压测是否达到预期目标,若不满足,要基于性能压测结果报告分析原因

引用链接:如何做好性能压测的系列讲解 - Syw_文 - 博客园

压测步骤

  1. 了解被测试应用的协议;
  2. 了解被测系统的组成;
  3. 编写压力测试脚本;
  4. 生成压力;
  5. 监控系统;
  6. 收集并分析数据;
  7. 得出结论。

拓展

TPS和QPS定义以及影响TPS的因素

参考链接

怎样正确做 Web 应用的压力测试

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 09:12:22  更:2021-11-26 09:13:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:34:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码