云服务器内容精选

  • 查找并禁用高消耗命令 使用了keys等消耗资源的命令,高消耗资源的命令即时间复杂度为O(N)或更高的命令,通常情况下,命令时间复杂度越高,在执行时消耗的资源越高,这会导致CPU使用率超高,容易触发主备倒换。关于各命令对应的时间复杂度信息请参见Redis官网。例如,使用了keys等消耗资源的命令,导致CPU超高,建议客户改成scan命令或者禁用keys命令。 通过性能监控功能,确认CPU使用率高的具体时间段。 通过下述方法,找出高消耗的命令。 慢查询功能会记录执行超过指定时间阈值的命令,通过分析慢查询的语句和执行时长可帮助您找出高消耗命令,具体操参见慢查询。 通过实例诊断功能,选择CPU冲高的时间点进行诊断后,可以看到报告中的对应时间段命令的执行情况以及CPU耗时百分比,具体操作参见实例诊断。 处理措施。 评估并禁用高风险命令和高消耗命令,例如FLUSHALL、KEYS、HGETALL等。 优化业务,例如避免频繁执行数据排序操作。 可选:根据业务情况,选择下述方法对实例进行调整: 调整实例为读写分离实例,对高消耗命令或应用进行分流。 扩容实例增强实例处理能力。
  • 是否存在Redis的持久化重写操作 对于主备和集群实例,华为云Redis实例默认开启AOF数据落盘,实例开启了AOF持久化功能后,华为云Redis会定期进行AofRewrite的磁盘整理,AOF磁盘持久化整理一般在以下2种场景执行: 数据量写入不大,AOF文件不大时,固定在每天的凌晨1-4点进行AOF持久化重写。所以容易出现这个时间点实例CPU使用率超高的现象。 数据量写入过大,AOF文件大小超过阈值(缓存实例容量的3-5倍)时,不论当前的所处的时间,会自动触发后台AOF持久化重写。 Redis的持久化重写操作(Bgsave或Bgrewriteaof)比较消耗CPU资源(请参考为什么使用Fork执行Bgsave和Bgrewriteaof),Bgsave和Bgrewriteaof会调用系统的Fork机制,造成CPU短暂时间冲高。 如果客户没有需要用到持久化功能,建议将该功能关闭(请根据实际业务慎重操作,关闭持久化功能会导致极端故障场景下恢复时,由于没有落盘造成的数据丢失)。关闭操作:在实例详情页面,选择“配置参数”页签,将“appendonly”修改为“no”。
  • 查看Redis实例实时并发连接数 当您需要查看DCS实例收到的实时连接数时,可以通过控制台查看,查看方法,请参考查看监控指标。 进入监控页面后,找到“活跃的客户端数量”监控项。您可以单击该监控项的右上角的查看按钮,使用大图模式查看。 在弹出的“活跃的客户端数量”页面,根据需要选择查看的时间段,例如,需要查看10分钟内的连接数,您可以将时间自定义为10分钟。由于监控数据采集的是周期内增加的连接数,您可以通过监控图表,查看这个时间段的连接数的走势,并统计10分钟内的连接总数。 监控指标“活跃的客户端数量”用于统计已连接的客户端数量,包括系统监控、配置同步和业务相关的连接数,不包括来自从节点的连接。 您还可以通过控制台会话管理,查看连接实例的客户端会话信息。
  • 为什么带宽使用率指标会超过100% 带宽使用率基本信息如下: 指标ID 指标名称 含义 取值范围 测量对象&维度 监控周期(原始指标) bandwidth_usage 带宽使用率 当前流量带宽与最大带宽限制的百分比 0-200% 测量对象: Redis 4.0及以上版本 主备、读写分离、集群实例数据节点 测量维度: dcs_cluster_node 1分钟 其中,带宽使用率的计算公式为:带宽使用率=(网络瞬时输入流量+网络瞬时输出流量)/(2*最大带宽限制)* 100%。 该公式中同时计算了网络瞬时输入流量和网络瞬时输出流量,这两个指标值是有统计主从同步的流量的。所以统计的总流量使用量会比正常的业务流量大一些,会发生带宽使用率指标超过100%的情况。 判断当前是否被限流,请使用流控次数这个指标,这个指标值大于0时,表示当前已使用的带宽超过最大带宽限制,产生流控。 限流时,流控次数指标是不统计主从同步流量的,所以有时候会出现带宽使用率指标超过100%,但流控次数为0的情况。 父主题: 监控告警
  • 触发限流(流控)的原因和处理建议 Redis产生流控,说明redis在周期内的使用流量超过该实例规格的最大带宽。流控会导致连接被丢弃,从业务角度可能会造成业务的延迟增大,客户端连接异常等问题。 实例规格对应的最大带宽,可以查看实例规格中对应实例类型的“基准/最大带宽”。 带宽使用率不高时,也有可能有限流,因为带宽使用率是上报周期实时值,一个上报周期检查一次。而流控检查是秒级的,有可能存在上报周期间隔期间,流量有秒级冲高,然后回落,待上报带宽使用率指标时已恢复正常。 对于主备实例: 如果实例一直有流控但是带宽使用率不高,这说明可能存在业务微突发问题,或者大Key热Key问题,建议对实例进行自动诊断分析,优先排除大Key热Key问题。 如果带宽使用率居高不下,说明带宽可能存在超限风险,需要扩容处理(容量越大,带宽越大)。 对于集群实例: 仅有单个或少量几个分片出现流控,则多数为该分片存在大Key热Key问题。 所有或大多数分片同时出现流控或者带宽使用率高的问题,这说明实例的带宽达到了瓶颈,建议扩容实例。 DCS控制台提供了大Key和热Key的分析功能,请参考分析Redis实例大Key和热Key减少大key和热key。 如果用户执行了keys等消耗资源的命令,也可能会导致CPU和带宽使用率增加,从而出现流控。 父主题: 监控告警