QoS流控管理概述
使用场景
在云计算场景中常面临多桶共用网络资源、核心业务与非核心业务共用带宽的情况,无论是交易支付等时延敏感业务,还是日志备份等非实时流量,均需依托稳定的网络环境,同时需控制带宽成本、避免资源滥用。然而,由于带宽和系统资源有限,多业务间资源争抢、非核心流量占用大量带宽会导致关键业务出现卡顿、丢包、时延过高。突发异常流量、带宽滥用还会造成成本超支,甚至影响整体业务稳定性。
为了帮助您基于业务与流量特征进行差异化资源分配,解决多租户资源争抢、业务波动、带宽成本不可控等问题,OBS提供服务质量QoS(Quality of Service)功能,使用流控管理保障各类业务网络质量。
相关背景知识
使用QoS功能时,您可能想要了解以下背景知识:
- QPS:每秒请求数(Query Per Second, QPS),即系统每秒能处理多少次访问请求,反映处理请求的效率、吞吐量、业务承载上限。使用QoS功能可为桶指定QPS上限。
- 带宽:单位时间内传输的数据量,单位为Byte/s,反映网络传输能力,决定系统能否把请求结果快速返回给客户端。使用QoS功能可为桶指定带宽上限。
- 并发请求数:同一时刻同时在处理的请求数量,反映系统对突增流量、多用户同时访问的承受能力。使用QoS功能可为桶指定并发请求数上限。
- 流控:指通过限制单位时间内的请求数、并发请求数或带宽,保障系统资源不被耗尽、服务正常运行,从而维持整体稳定性的一种限流保护策略。当对桶的请求超过桶的QPS、带宽或并发请求数上限时会触发流控,表现为请求响应时延变长或请求失败返回429。流控策略能维护业务稳定,例如攻击者恶意发送大量请求,想通过消耗大量资源从而影响正常业务运行,此时流控可以限制攻击频率等指标,减少异常流量对正常业务的冲击。
- 集群:集群是由多台相互独立的计算或存储节点,通过网络和分布式调度系统组成的资源集合。创建桶后,桶会被分配到某个集群中,对桶和桶内对象的访问会消耗集群资源。每个账号在指定集群都有QPS、带宽、并发请求数上限,如何查看请参考查看某个集群的账号级QoS。
- 桶级QoS规则:作用在单个桶或并行文件系统上,限制桶的QPS、带宽、并发请求数上限,访问桶时不能超过该上限。桶级QoS规则支持用户自定义,但是自定义的值不能超过桶所在集群的账号级QoS限制。
- 账号级QoS规则:作用在单个账号上,限制账号在某个集群的QPS、带宽、并发请求数的上限,使用账号给桶配置桶级Qos不能超过该上限。账号级QoS规则不支持自定义。
当账号下某个集群的QPS、带宽、并发请求数超过限制时,如果想要申请更多资源,可联系提交工单联系技术人员申请。
约束与限制
- 当前仅桶级QoS规则支持用户自定义,租户级QoS规则可联系提交工单联系技术人员调整。如果桶没有配置桶级QoS规则,那么该桶最大可使用到账号下集群资源的最大值。
- 桶所属集群的指标如果没有限制,那么桶可配置的对应指标最大为263-1。
- QPS或带宽任一指标超过阈值会触发流控。触发流控时,请求时延会上升,请求响应中会携带头域x-obs-qos-delay-time,该头域为请求被流控的时长,单位为ms。上传类请求(PUT上传、上传段等)会返回精确的被流控时长,下载类请求(下载对象等)会返回根据流控程度和文件大小估算出的被流控时长。
- 并发请求数超过阈值会触发流控。触发流控时,请求会立即失败,返回429。当QPS或带宽流控时,由于请求时延上升,也会导致并发请求数增加。
工作原理

如上图所示,以区域1下所属集群A的三个桶为例介绍桶的流控管理工作原理。集群A下有3个桶,其中桶A部署了关键核心业务,桶B为桶A的备用桶,桶C为其他业务的预留桶。
假设集群A的并发请求数最大为1000,未配置桶流控策略和配置桶流控策略的情况如下:
- 未配置桶流控策略:桶A、桶B和桶C的最大并发请求数均可以达到1000。同时并发访问3个桶,如果在某一时刻桶B和桶C的并发请求数达到集群的80%(800),那么桶A的并发请求数最大只能达到集群的20%(200),由于桶B和桶C抢占了集群的大部分资源而造成访问桶A有时延。 图1 未配置桶流控策略
- 配置桶流控策略:根据3个桶的业务属性,为桶A不配置最大并发请求数或配置最大并发请求数为1000,为桶B配置最大并发请求数为200,为桶C配置最大并发请求数为100,这样在某一时刻即使桶B和桶C分别达到最大并发请求数(200和100),桶A的并发请求数最大可达到700,仍然可以保证桶A的业务平稳运行。 图2 配置桶流控策略