`

QPS、PV和需要部署机器数量计算公式

阅读更多

QPS = req/sec = 请求数/秒

 

【QPS计算PV和机器的方式】

QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 *   请求时间 )
QPS: 单个进程每秒请求服务器的成功次数

单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8

服务器计算
服务器数量 =   ceil( 每天总PV / 单台服务器每天总PV )

 

【峰值QPS和机器计算公式】

原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS   = 需要的机器

 

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

 

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

 

关于并发用户数和QPS,自己一直被这两个概念纠结,阅读了一下相关资料,总结如下:

并发用户数和QPS两个概念没有直接关系,但是如果要说QPS时,一 定需要指明是多少并发用户数下的QPS,否则豪无意义,因为单用户数的40QPS和20并发用户数下的40QPS是两个不同的概念。前者说明该应用可以在 一秒内串行执行40个请求,而后者说明在并发20个请求的情况下,一秒内该应用能处理40个请求,当QPS相同时,越大的并发用户数,代表了网站并发处理 能力越好。

 

对于当前的web服务器,其处理单个用户的请求肯定戳戳有余,这个时候会存在资源浪费的情况(一方面该服务器可能有多个cpu,但是只处理单个 进程,另一方面,在处理一个进程中,有些阶段可能是IO阶段,这个时候会造成CPU等待,但是有没有其他请求进程可以被处理)。而当并发数设置的过大时, 每秒钟都会有很多请求需要处理,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能够处理的请求数反而变少,同时用户的请求等待时间也 会变大,甚至超过用户的心理底线。

 

所以在最小并发数和最大并发数之间,一定有一个最合适的并发数值,在并发数下,QPS能够达到最大。但是,这个并发并非 是一个最佳的并发,因为当QPS到达最大时的并发,可能已经造成用户的等待时间变得超过了其最优值,所以对于一个系统,其最佳的并发数,一定需要结合 QPS,用户的等待时间来综合确定。

 



图1 并发用户数,QPS,用户平均等待时间(响应时间关系图)

 

上面这张图是应用其他人的关于并发用户数,QPS,用户平均等待时间的一张关系图,对于实际的系统,也应该是对于不同的并发数,进行多次测试,获取到这些数值后,画出这样一张图出来,以便于分析出系统的最佳并发用户数。

 

  • 大小: 82.9 KB
分享到:
评论

相关推荐

    Mysql数据库的QPS和TPS的意义和计算方法

    在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标。...在对数据库的性能监控上经常会提到QPS和TPS这两个名词,下面就分别简单的分享一下关于MySQL数据库中的QPS和TPS的意义和计算方法。 1 QPS:

    java架构之系统峰值、TPS、QPS在实际业务中的计算

    例如,如果已知每天的PV(页面访问量)和单台机器的QPS,可以通过简单的计算来估算所需的机器数量。此外,通过分析日志文件(如access.log)可以监控服务的QPS,这有助于实时了解系统的负载情况并进行性能调优。 ...

    MYSQL QPS TPS全揭秘

    通过计算两次结果的差值来得到这段时间内的查询数量,并除以等待时间得到QPS值。具体命令如下: ```sql show global status where Variable_name in ('com_select','com_insert','com_delete','com_update'); -- ...

    基于JAVA简单简洁的压力测试, QPS测试工具.zip

    1. 优化代码:减少不必要的计算,避免内存泄漏,使用更高效的数据结构和算法。 2. 并行处理:通过多线程或异步处理来增加并发能力。 3. 缓存策略:使用缓存减少数据库或其他慢速资源的访问。 4. 负载均衡:通过负载...

    深度学习-轻量级骨干网-QPS

    在选择轻量级骨干网时,除了考虑模型的计算量(FLOPs或MACs)外,还需要综合评估模型的QPS、GPU利用率、内存占用、并行度等因素。对于实际业务来说,模型的部署效率和实时性能同样至关重要。通过比较不同模型在特定...

    awk测试从nginx查询qps的测试日志.log

    awk测试从nginx查询qps的测试日志

    服务器端性能优化-提升QPS、RT

    实践中,可以通过逐步增加线程数量,监测QPS和RT的变化,找到QPS不再显著增长而RT开始显著增加的那个点。 ### 优化案例说明 案例研究显示,通过采用异步IO和缓存QP查询结果等策略,可以显著提升RT,但对QPS的影响...

    腾讯云SDK调用的QPS限制优化专用网关

    QPS限制优化专用网关的核心功能是智能管理和调度来自SDK的请求,以确保服务的稳定性和防止过载。以下是一些关于这个网关的关键知识点: 1. **负载均衡**:专用网关可以实现对多个服务器的负载均衡,将来自SDK的请求...

    查询 msyql QPS TPS 等信息

    然而,实时监控QPS和TPS通常需要更复杂的工具,比如MySQL的`Performance Schema`。这是一个内置的、低开销的监控框架,能提供详细的性能数据。通过` Performance Schema`,我们可以获取到每秒执行的查询和事务的精确...

    基于ELK的nginx-qps监控解决方案.docx

    基于ELK的nginx-qps监控解决方案 在现代网络架构中,监控和日志分析是非常重要...基于ELK的nginx-qps监控解决方案提供了一个强大的监控和日志分析平台,帮助我们实时了解nginx的性能状态,并快速响应故障和性能瓶颈。

    QPS289Setup 2.04

    2. **扫描列表管理**:创建和管理频道扫描列表,用户可以根据需要设置对讲机自动扫描的频率范围,以便快速响应不同环境下的通信需求。 3. **功能设置**:除了基本的频率配置,该软件还可能提供对对讲机其他功能的...

    王亚雷-Twitter 千万 QPS 分布式系统的架构设计和高效运维

    ### 知识点一:千万QPS分布式系统架构设计 #### 1.1 关系型数据库与NoSQL数据库的选择 - **关系型数据库(RMDBS)** - 特点:提供**强一致性**(Strong Consistency),适用于需要事务支持的应用场景。 - 优势:在CP...

    服务器端性能优化-提升QPS:RT1

    【服务器端性能优化-提升QPS:RT1】主要探讨的是如何通过优化服务器性能来提升QPS(每秒查询率)和降低RT(响应时间),从而实现系统效率的最大化。以下将详细介绍相关知识点: 1. **优化方向**: - 首先,要找到...

    kubernetes部署mysql高可用

    在现代云原生环境中,Kubernetes(简称K8s)被广泛用于自动化容器化应用的部署、扩展和管理。MySQL作为流行的开源关系型数据库管理系统,其在Kubernetes上的高可用部署是许多企业级应用的关键需求。本文将深入探讨...

    架构设计如何做流量评估和容量设计.pdf

    5. 计算所需服务器数量:根据高峰QPS和单台服务器极限QPS来预估所需的服务器资源数量。 6. 考虑冗余和安全余量:在实际部署时,应根据实际需要增加服务器数量以保证系统稳定运行。 在实施过程中,还应该不断监控...

Global site tag (gtag.js) - Google Analytics