检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Redis实例内存使用率高问题排查和解决 问题现象 Redis可提供高效的数据库服务,当内存不足时,可能导致Key频繁被逐出、响应时间上升、QPS(每秒访问次数)不稳定等问题,进而影响业务运行。由于Redis自身运行机制(主从同步、延迟释放等),内存占用率可能出现略微超过100%
QPS:即Query Per Second,表示数据库每秒执行的命令数。QPS的测试方法,可参考性能测试方法。 带宽:即实例的内网带宽,您可以查看监控指标“流控次数”,确认带宽是否超过限额。其中,带宽还涉及监控指标“带宽使用率”,该指标仅供参考,可能会出现超过100%的情况,具
参数说明见表1。 表1 参数说明 参数 类型 必选 说明 project_id String 是 项目ID。 allFailure String 否 是否批量删除创建失败的缓存实例。 取值如下: true,表示删除租户所有创建失败的缓存实例,此时请求参数instances可为空; false
表1 参数说明 参数 类型 必选 说明 project_id String 是 项目ID。 includeFailure String 否 是否返回创建失败的实例数。 当参数值为“true”时,返回的统计包括创建失败的实例数。 参数值为“false”或者其他值,返回的统计不包括创建失败的实例数。
除了上表中提到的实例外,其他实例类型目前不支持实例类型的变更,若您想实现跨实例类型的规格变更,可参考使用迁移任务在线迁移Redis实例进行操作。 实例类型是否支持变更,以控制台实例的“变更规格”操作界面为准。 图1 支持变更的实例类型 父主题: 扩容缩容与实例升级
在达到内存上限(maxmemory)时,Redis支持选择以下8种数据逐出策略: noeviction:在这种策略下,如果缓存达到了配置的上限,实例将不再处理客户端任何增加缓存数据的请求,比如写命令,实例直接返回错误给客户端。缓存达到上限后,实例只处理删除和少数几个例外请求。 allkeys-lru:根据LRU(Least
ID的数组。 请检查请求参数是否合法。 400 111400068 This VPC does not exist. VPC不存在。 请检查请求参数是否合法。 400 111400070 Invalid task ID format. 任务ID的格式无效。 请检查请求参数是否合法。 400 111400072
Redis 6.0版本的新增特性。 RESP3协议 在Redis 6.0中,推出了下⼀代Redis协议-RESP3,相比于RESP2协议,增加了⼀部分新的数据类型。 Null:空值,替代RESP2中的*-1、$-1 Array:有序集合 Simple string:节省空间的安全字符串(非⼆进制)
0实例的公网访问 如果实例已经开启了公网访问,不需要执行本章节。 如果实例没有开启公网访问,可参考本章节,开启公网访问开关,在开启公网访问时,您可以选择是否使用SSL加密传输。 通过公网SSL加密方式访问Redis实例时,建议使用前先下载CA证书,并使用CA证书来验证DCS缓存实例的证书,以提高安全性。
testOnBorrow 向资源池借用连接时是否做连接有效性检测(ping),检测到的无效连接将会被移除。 对于业务连接极端敏感的,并且性能可以接受的情况下,可以配置为True,一般来说建议配置为False,启用连接空闲检测。 testWhileIdle 是否在空闲资源监测时通过ping命令监测连接有效性,无效连接将被销毁。
仅单机、主备、读写分离、Proxy集群实例支持开启公网访问,Cluster集群实例暂不支持。 客户端公网访问Redis,与处于同一VPC下的客户端访问Redis相比,网络时延会增加。 因公网性能问题造成的客户端访问异常不计入SLA。 前提条件 准备弹性负载均衡ELB,创建ELB的操作,请参考创建独享型负载均衡器。创建
Redis Cluster集群实例不支持多DB,只有一个DB。 Redis 4.0及以上版本的实例,通过控制台连接redis实例后,即可以查看是否为多DB,如下图所示。 图1 连接Redis 图2 查看Database 父主题: Redis使用
如果是在线迁移,请确认源Redis实例,是否禁用了SYNC和PSYNC命令,如果禁用了,需要先开启,允许数据同步。 如果是单机/主备实例迁移到Proxy集群实例,Proxy集群默认不开启多DB,仅有一个DB0,请先确保单机/主备实例DB0以外的DB是否有数据,如果有,请先参考开启多DB操作开启Proxy集群多DB设置。
查看Redis实例的慢查询记录 慢查询是Redis用于记录命令执行时间过长的机制。您可以在DCS控制台查看慢请求日志,帮助解决性能问题。 查询结果中,涉及的慢语句命令详情,请前往Redis官方网站查看。 慢查询结果由以下实例配置参数决定: slowlog-log-slower-t
可能会较长时间阻塞其它业务命令操作。 不建议在业务高峰使用MONITOR命令,在高并发的场景下执行MONITOR命令可能会影响实例性能,增加时延。 EVAL和EVALSHA相关命令使用限制 使用EVAL和EVALSHA命令时,命令参数中必须带有至少1个key。否则客户端会提示“ERR
Cluster集群:通过分片化分区来增加缓存的容量和并发连接数,每个分片是一个主节点和0到多个备节点,分片本身对外不可见。分片中主节点故障后,同一分片中备节点会升级为主节点来继续提供服务。用户可通过读写分离技术,在主节点上写,从备节点读,从而提升缓存的整体读写能力。 读写分离:在主备实例的基础上,增加挂载Pr
以下规则,远端可使用安全组,也可以使用具体的IP地址。 配置ECS所在安全组。 ECS所在安全组需要增加如下出方向规则,以保证客户端能正常访问DCS缓存实例。如果出方向规则不受限,则不用添加。 配置DCS缓存实例所在安全组。 DCS实例所在安全组需要增加如下入方向规则,以保证能被客户端访问。 缓存实例的入方向规则中,源地址建议使用指定IP地址,慎用“0
这两个指标值是有统计主从同步的流量的。所以统计的总流量使用量会比正常的业务流量大一些,会发生带宽使用率指标超过100%的情况。 判断当前是否被限流,请使用流控次数这个指标,这个指标值大于0时,表示当前已使用的带宽超过最大带宽限制,产生流控。 限流时,流控次数指标是不统计主从同步
Redis/Memcached实例变更失败的原因 检查是否有其他任务在执行。 实例变更过程中,同时有其他任务在执行。例如实例正在重启的同时,执行删除或扩容操作,或者实例正在扩容的时候,执行删除操作。 遇到实例变更操作失败,可以稍后尝试,如果仍然存在问题,请提工单联系技术支持。 如
创建实例时,需将“参数配置”选择为“使用自定义模板”,并选择如上步骤中创建的自定义模板,即可创建多DB的Proxy集群实例。 创建成功后,可连接Redis查看是否为多DB实例。 父主题: Redis使用