峰值QPS和计算公式

峰值QPS和计算公式

概述

因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,其即为QPS。 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。

计算关系: QPS = 并发量 / 平均响应时间 并发量 = QPS * 平均响应时间

通常QPS用来表达和衡量当前系统的负载,也可以用RPS来表示, 我们形容当前系统的运行状态时可以说当前QPS已经达到多少多少了, 在系统环境不变的情况下存在支持的最大QPS,但并不应该用来形容机器的性能。 可以通过提高TPS来提升当前系统的处理能力,来增加最大QPS的支持。 TPS用来形容机器的性能。

QPS计算原理

QPS = req/sec = 请求数/秒

  • 原理:每天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

转载于:https://my.oschina.net/u/2474096/blog/3095424

### 性能测试常用计算公式 性能测试中常用的计算公式涵盖了多个关键指标,如吞吐量、QPS、PV、UV等。以下是详细的计算公式及相关说明: #### 1. 吞吐量(Throughput) 吞吐量表示单位时间内系统能够处理的请求数量,是衡量系统负载能力的重要指标。其计算公式如下: \[ F = \frac{NPU \times R}{T} \] - \( F \):吞吐量 - \( NPU \):并发虚拟用户数(Concurrency Virtual User,并发虚拟用户) - \( R \):每个虚拟用户发出的请求数量 - \( T \):性能测试所用的时间[^1] #### 2. 每秒查询率(QPS, Query Per Second) QPS表示每秒的响应请求数,也即是系统的最大吞吐能力。其计算公式为: \[ QPS = \frac{\text{总请求数}}{\text{总时间(秒)}} \] 另一种统计方式为: \[ QPS = \frac{\text{总请求数}}{\text{进程总数} \times \text{请求时间}} \] 此外,峰值QPS计算公式为: \[ \text{峰值QPS} = \frac{\text{总PV数} \times 80\%}{\text{每天秒数} \times 20\%} \] 其中,80%的访问集中在20%的时间内,这部分时间为峰值时间[^3]。 #### 3. 页面浏览量(PV, Page View) PV表示页面的总浏览量或点击量,每次用户刷新页面即被计算一次。单台服务器每天的PV可以通过以下公式计算: \[ \text{每天总PV} = QPS \times 3600 \times 6 \] 或者: \[ \text{每天总PV} = QPS \times 3600 \times 8 \][^3] #### 4. 独立访客数(UV, Unique Visitor) UV表示独立访客的数量,即一天内访问网站的不同客户端数量。计算公式为: \[ \text{需要的机器数} = \lceil \frac{\text{每天总PV}}{\text{单台服务器每天总PV}} \rceil \][^3] #### 5. CPU使用率 在性能测试中,CPU使用率可以通过以下公式计算: \[ \text{CPU使用率} = 1 - \text{idle比例} \] - idle比例:通过`top`命令中的`id`字段获取。 当`us + sy <= 70%`时,系统运行状态良好[^2]。 #### 6. 内存占用率 内存占用率可以通过以下公式计算: \[ \text{MemUsed\%} = \left( \frac{\text{MemUsed}}{\text{MemTotal}} \right) \times 100\% \] 当内存占用率小于等于70%时,系统内存使用情况良好[^2]。 #### 7. 系统负载率 Linux系统的负载率可以通过`load average`字段查看,显示的是1分钟、5分钟15分钟内的平均负载情况。 ```python # 示例代码:计算QPS def calculate_qps(total_requests, total_time_seconds): return total_requests / total_time_seconds # 示例代码:计算每天总PV def calculate_daily_pv(qps, hours_per_day=6): return qps * 3600 * hours_per_day ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值