• QPS、TPS、RT、并发用户数、吞吐量


    QPS

    QPS Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。

    TPS

    TPS Transactions Per Second 也就是事务数/秒。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,

    QPS和TPS区别

    举例,请求一个index.html 页面,客户端发起了三个请求(css、js、index接口),那么此时TPS =1 、QPS =3 。

    在针对单接口的时候TPS = QPS。

    并发数

    并发数(并发度):指系统同时能处理的请求数量,同样反应了系统的负载能力。这个数值可以分析机器1s内的访问日志数量来得到。

    压测时,一般都是指定并发数来压出单实例的QPS拐点,即一步一步提高并发数来测出对应的QPS,平均RT,错误率

    • 并发数:100
    • 并发数:300
    • 并发数:500

    吐吞量

    吐吞量:吞吐量(Throughput)是指系统在单位时间内处理请求的数量,TPS、QPS都是吞吐量的常用量化指标

    RT

    响应时间:RT(Response-time)就是从客户端请求发起到服务器响应结果的时间。RT这个参数是系统最重要的指标之一,它的大小直接反应了当前系统的响应状态。基本和咱们用户体验息息相关,现在好一点监控系统一般都有三个RT,即平均、最大、最小。

    P99,P95,P50

    一般系统RT 100ms 以内是比较正常的,300ms 勉强可以接受,1s的话再加上一些其他的外因,给用户的体验就是实实在在的不爽了。

    P99 < 1s,P95 < 300ms

    上面几个名词的计算关系

    • QPS = 并发数 / 平均响应时间

    • 并发数 = QPS * 平均响应时间

    计算1:QPS、RT、并发数计算

    以下示例来着互联网文章-艾小仙

    假设公司每天早上9点到10点1个小时内都有员工要上厕所,公司有3600个员工,平均每个员工上厕所时间为10分钟,我们来计算一下。

    QPS = 3600/60*60 1

    RT = 10*60 600秒

    并发数 = 1 * 600 600

    这样就意味着如果想达到最好的蹲坑体验,公司需要600个坑位来满足员工需求,否则的话上厕所就要排队等待了。


    针对以上答案不是很好理解,我是这么分析的,其实上面的需求是 1个小时 让3600人拉完屎,即厕所服务的整体吞吐量需求为 3600人/1时 = 3600人/3600s = 1/s,即QPS = 1

    那么需要多少个厕所实例来满足需求呢

    由于单个厕所实例的qps = 1人/10m = 1人/600s。

    所以需要 1人/s / 1人/600s = 600厕所实例

    QPS

    • 厕所服务:3600人/1时 = 1 QPS
    • 厕所实例:1人/10m = 1/600 = 0.00167 QPS

    响应时间

    • 厕所服务:1h

    • 厕所实例:10m

    并发数

    如果按照上面的计算公式 并发数 = QPS * 平均响应时间,那这里厕所实例的并发数等于多少呢?

    1 * 1h = 3600??? 不对哦,这里的平均响应时间 是每个人的即1* 10m = 600

    也可以这么理解厕所服务提供了 600 个厕所坑位,所以支持的最大并发数,即同时拉屎数 = 600…

    • 厕所服务:1QPS(服务的QPS) * 10m (实例的响应时间 一个call) = 600
    • 厕所实例:0.00167 QPS * 10m = 1

    吞吐量

    • 厕所服务的吞吐量为 3600 TPH = 1 TPS

    PV

    PV(Page View):页面访问量,即页面浏览量或点击量,用户每次刷新即被计算一次。可以统计服务一天的访问日志得到。 可以通过Nginx、Apache之类的Web Server得到。

    UV

    UV(Unique Visitor):独立访客,统计1天内访问某站点的用户数。可以统计服务一天的访问日志并根据用户的唯一标识去重得到。可以通过Nginx、Apache之类的Web Server得到。

    DAU

    DAU(Daily Active User),日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。DAU通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户),与UV概念相似

    MAU

    MAU(Month Active User):月活跃用户数量,指网站、app等去重后的月活跃用户数量

    计算2:峰值QPS和机器计算

    原理:按二八定律来看,如果每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间 。

    这里应该根据业务场景来定,例如这个时间 * 20%

    针对一些政企机关单位这个时间不是 24h而是8h,应灵活运用。

    公式

    • 峰值QPS:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)

    • 需要的机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

    示例

    :每天100w PV 的在单台机器上,这台机器峰值是多少QPS

    :( 1000000 * 0.8 ) / (86400 * 0.2 ) = 46 (QPS)

    如果有成熟的监控可以从监控上去看实际的QPS与计算的偏差。

    :如果一台机器的QPS是18,需要几台机器来支持?

    :46/ 18 = 3

  • 相关阅读:
    AI术士炼肛记:程序员开源「肛珠作弊」代码,在线寻找天选之子亲自体验
    java8中LocalDateTime解析日期的示例分享
    Apache Doris 快速入门
    vue form表单使用el-select下拉框 获取后台数据可供选择
    论文笔记:AttnMove: History Enhanced Trajectory Recovery via AttentionalNetwork
    各种开发语言运行时占用内存情况比较
    护网中蓝队都做哪些工作
    剑指:二叉树有关题目
    2023美亚杯个人赛复盘(二)
    Windows安装Docker
  • 原文地址:https://blog.csdn.net/abu935009066/article/details/128134965