问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

RPS介绍

创作时间:
作者:
@小白创作中心

RPS介绍

引用
1
来源
1.
https://docs.functorz.com/deployment_scale/rps.html

RPS(Requests Per Second)是衡量系统性能的重要指标,它反映了系统在单位时间内的处理能力。本文将详细介绍RPS的概念、计算方法以及在软件服务中的应用,帮助开发者更好地理解和优化系统性能。

RPS 概述

计算机语言里,什么是 RPS ?

RPS 即 Requests Per Second,指的是每秒请求数,通常用 RPS 的高低来形容一个服务的请求频繁程度。能支持的 RPS 越高也表示该系统在单位时间内的吞吐量越高,所消耗的服务器资源也就越大。为了保证服务的稳定性和用户体验,软件服务都会限制 RPS。

举例:可以把软件上所有的请求理解为全部即将开上一座桥的车,RPS 就等于每分钟要上桥的车的数量。软件 RPS 限制就等于这座桥1分钟可以吞吐的车总量。RPS 超限就等于当车流高峰期时,很多车就会因为桥梁的吞吐量不足被迫在等待区排队。(目前我们 Zion 的请求等待区为 3s 内的请求,对应到例子就是上桥等待区最多容纳3分钟的车辆)

线上用户执行哪些操作算是数据请求?

数据请求:

  • 执行数据请求行为:执行一个数据请求行为(查询、修改、删除表数据)即算一个请求。
  • 拉起有远程数据的页面:会做数据请求聚合,一个页面配置了多个远程数据,用户在拉起这个页面时请求数为1;但远程数据之间有依赖的情况下,不会自动聚合,比如 a 依赖 b 的结果做过滤,那么会先发送 b,等 b 回来再发送 a,这时候请求数为2
  • API 调用:每调用一次api算一个请求
  • Action flow(行为流)调用:每调用一次行为流算一个请求;如某行为流里包括了多个数据的增删改查操作,也算一个请求
  • ZAI 调用:每调用一次 ZAI 算一个请求应用的 RPS :一秒内,所有活跃用户发生以上操作的数据请求总数即为该应用的 RPS(数据查询由于目前我们请求合并做的不够完善,所以目前不会被记入限制的 RPS 峰值内)

每个项目 RPS 峰值限制是多少?

我们zion会对生成的项目进行每秒请求数的峰值限制,不同的版本限制的峰值数量不同,购买了单租户算力包的项目不会限制 RPS,可以理解为前文例子的桥是无限车道。以下为不同版本 RPS 峰值限制数:

版本
免费版
高级版
专业版
企业版
购买单租户算力包
RPS 峰值限制
5
5
25
所有项目共享250
不限

遇到了 RPS 限制后会发生什么?

  • RPS 达到峰值限制后,用户会看到一个提示:

  • 如果有多个连续请求,中间触发了 RPS 的限制,那么该次连续请求会失败。例如一个按钮配置了10个数据请求,当执行到第5个请求时触发了 RPS 限制,那么该请求会失败,即当前用户的线上操作会失败。

作为开发者,如何应对发生 RPS 限制的情况?

  • 开发应用时,进行科学合理的设计
  • 使用行为流功能:将右边栏交互下配置的连续请求行为配置为一个行为流,通过调用行为流这个行为来执行这个操作
  • 合理地进行功能设计,避免高 RPS 的操作。例如抽奖功能,限制每个用户每天只能点击一次,来防止单用户疯狂点击来让 RPS 变得非常高。
  • 如上线后,发现应用触发了 RPS 限制
  • 进入项目详情页查看具体达到峰值的次数和每次超过时的 RPS 值
  • 选择相应的版本进行升级
  • 购买单租户服务器,将没有 RPS 的限制。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号