缓存分析
DAS支持缓存分析功能,通过分析Redis的备份文件,帮助您确认Redis内存占用以及大Key的分布情况,减少因Key倾斜引发的内存不足、性能下降等问题。针对Redis社区版集群架构,使用缓存分析功能还能显示各个节点内存占用的统计情况。
使用限制
目标数据库实例已接入DAS,且实例接入状态为接入正常。
暂不支持Redis社区版7.0实例和Tair(Redis企业版)内存型(兼容Redis 6.0)实例。
只支持分析Redis数据结构和以下Tair自研数据结构:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairCpc、TairZset,暂不支持分析其他Tair自研数据结构。
如果目标Redis实例规格已发生变更,则不支持分析实例变更前的备份文件。
暂不支持英国(伦敦)、德国( 法兰克福)、 印度(孟买)地域的Redis实例。
操作步骤
- 登录DAS控制台。
- 在左侧导航栏中,单击实例监控。
- 找到目标实例,单击实例ID,进入目标实例详情页。
在左侧导航栏选择请求分析 > 缓存分析。
在缓存分析页右侧,单击立即分析。
在缓存分析对话框中,设置如下参数。
配置
说明
选择分析节点
选择需要执行缓存分析的节点ID。
说明您可以选择分析整个实例,也可以只选中某个节点进行分析。
分析方式
根据需要,选择不同的备份文件进行分析:
使用上一个备份文件:分析当前最新的备份文件。
新建备份, 并使用最新的备份进行分析:立即新建一次备份,待备份完成后对其进行分析,该方式可分析实例当前的状态。
选择历史备份文件:允许选择并分析任意历史备份文件。
说明在分析已存在的备份文件时,请确认备份文件的时间点,是否符合预期。
分隔符
根据需要,输入用于识别Key前缀的分隔符。当分隔符为默认的
:;,_-+@=|#
时,不需要输入。单击确定。
在缓存分析列表找到已完成的分析任务,在右侧操作栏中,单击详情,查看如下分析结果:
基本信息:目标实例基本属性和分析方法等情况。
相关节点:Redis社区版集群架构内各个节点的内存情况和Key统计信息。
说明只有选择分析整个Redis社区版集群架构实例时,才会展示该信息。
详情:目标实例的内存占用情况、Key内存占有的近一周日均增长量、Key总数量、Key内存占有情况、Key数量分布情况、Elements内存占用情况、Elements数量分布情况、Key过期时间分布 (内存)、Key过期时间分布 (数量),以及内存占有量、总数量、Key前缀在前100的大Key信息。
常见问题
Q:为什么缓存分析结果展示的Key内存占有会比实际使用的内存小?
A:因为缓存分析结果实际只是解析了Key和对应value在RDB中序列化后占用的大小,这个只占用了used_memory中的一部分,used_memory还包含了如下部分:
Key和value所对应的struct和指针大小。在jemalloc分配后,字节对齐部分所占用的大小也没计算在used_memory中,例如在2.5亿Key的数量下,struct、指针、字节对齐这三部分的大小加起来约有2~3 GB。
客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和主从复制的backlog,这些也没计算到缓存分析中。
Q:Redis缓存分析的前缀分隔符是什么?
A:目前Redis缓存分析的前缀分隔符是按照固定的前缀
:;,_-+@=|#
区分的字符串。Q:为什么Redis缓存分析中String类型Key的元素数量和元素长度是一样的?
A:在Redis缓存分析中,针对String类型的Key,其元素数量就是其元素长度。
Q:如何处理报错
decoderdbfileerror:rdb:unknownobjecttype116forkeyXX
?A:该报错表示Redis实例里面存在非标准的Bloom结构,您可以把这些Bloom结构的Key删掉,或者将Redis实例升级到Redis企业版(Tair),并将非标准的Bloom结构修改为TairBloom结构。
Q:如何处理报错
decode rdbfile error: rdb: invalid file format
?A:该报错表示所选的备份文件无效,请检查实例是否在该备份时间点后变配。
Q:如何处理报错
decode rdbfile error: rdb: unknown module type
?A:该报错表示备份文件中存在Tair自研数据结构,暂不支持分析。
Q:为什么Stream数据结构的缓存分析结果是实际值的数倍?
A:Stream数据结构底层使用基数树(Radix Tree)和紧凑列表(listpack),数据结构复杂。缓存分析功能目前无法精确获得此类复杂数据结构的内存占用情况,只能进行估算,因此缓存分析结果存在偏差。
说明缓存分析结果的偏差仅为数据统计偏差,不影响数据库实例的功能。