
# 触发流控（限流）的原因和处理建议
**什么是流控**
DCS针对实例每个节点做了带宽消耗的限制，当某个节点短时间内消耗的带宽超过该节点的带宽限制（最大带宽）时，该节点会暂时不对客户端命令进行处理，以达到控制流量的目的，即产生流控。因此，Redis产生流控，说明Redis在周期内的使用流量超过该实例规格的最大带宽。
![](https://support.huaweicloud.com/dcs_faq/public_sys-resources/note_3.0-zh-cn.png)
实例默认的最大带宽，可以查看[实例规格](https://support.huaweicloud.com/productdesc-dcs/dcs-pd-200713003.html)中对应实例类型的"基准/最大带宽"。如果实例进行了[调整带宽](https://support.huaweicloud.com/usermanual-dcs/dcs_03_0002.html)，最大带宽请以调整后的带宽为准。
**如何判断是否产生流控**
判断是否产生流控，请通过查看**流控次数**的监控指标，该指标大于0时，表示当前已使用的带宽超过最大带宽限制，产生流控。
带宽使用率不高时，也有可能有限流，因为带宽使用率是上报周期实时值，一个上报周期检查一次。而流控检查是秒级的，有可能存在上报周期间隔期间，流量有秒级冲高，然后回落，待上报带宽使用率指标时已恢复正常。
**流控的影响**
Redis产生流控，会暂时停止响应该节点客户端发来的请求（DCS侧不会丢弃暂停的请求，而是跳过此次处理待下次处理），从业务角度可能会造成业务的延迟增大，客户端连接异常等问题。
**对流控的处理建议**
对于主备实例：
- 如果实例一直有流控但是带宽使用率不高，这说明可能存在业务微突发问题，或者大Key热Key问题，建议对实例进行自动诊断分析，优先排除大Key热Key问题。
- 如果带宽使用率居高不下，说明带宽可能存在超限风险，需要扩容实例带宽。
对于集群实例：
- 仅有单个或少量几个分片出现流控，则多数为该分片存在大Key热Key问题。
- 所有或大多数分片同时出现流控或者带宽使用率高的问题，这说明实例的带宽达到了瓶颈，建议扩容实例带宽。
![](https://support.huaweicloud.com/dcs_faq/public_sys-resources/note_3.0-zh-cn.png)
- DCS控制台提供了大Key和热Key的分析功能，请参考[分析Redis实例大Key和热Key](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-190808001.html)，减少大Key和热Key。
- 如果用户执行了Keys等消耗资源的命令，也可能会导致CPU和带宽使用率增加，从而出现流控。可以通过[查询Redis实例运行日志](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-1009001.html)排查。
- 通过控制台的[调整DCS实例带宽](https://support.huaweicloud.com/usermanual-dcs/dcs_03_0002.html)功能扩容Redis实例带宽，可以解决实例带宽超限的问题。
 
