云智时代:分析实例的内存更有针对性,高性能内存数据库Redis的免费工具

在分析Redis实例的内存使用情况时 , 市场上有许多免费和开源工具 , 以及少量的付费产品 。 最受欢迎的工具是Jacks(各行各业) , 但是如果您想对内存问题进行更深入的分析 , 则最好使用针对性更强 , 鲜为人知的工具 。
云智时代:分析实例的内存更有针对性,高性能内存数据库Redis的免费工具
文章图片
这里汇总了几种有用的免费工具 , 这些工具在分析Redis实例的内存使用情况时很有用 。
1.Redis内存分析器(RMA)
RMA是可用于Redis的最全面的FOSS内存分析器之一 。 它支持三种不同级别的详细分析 。 全局-内存使用信息概述;扫描(Scanner)-最高级别的键空间/前缀级别的内存使用信息 , 即使用最短的公共前缀;RAM-最低级别的键空间/前缀 , 即使用最长的公共前缀 。
在全局模式下 , RMA提供一些高级统计信息 , 例如密钥数 , 系统内存 , 常驻集大小 , 密钥空间大小等 。 唯一的功能是“密钥空间开销” , 即Redis系统使用的内存存储与键空间有关的信息 , 例如列表数据结构的指针;
在扫描模式下 , 获得密钥空间的概述 。 它提供了高级名称空间 , 以及其项的类型和该名称空间消耗的内存百分比 。 然后将“RAM”行为与名称空间模式结合使用进行详细的分析非常有用 。
在RAM模式下 , 可获得其他大多数FOSS内存分析器提供的键空间级内存消耗 。 将获得有关所用内存 , 实际数据大小 , 开销 , 编码 , 最小和最大的详细信息 , TTL等 。 这有助于查明系统中最大的内存消耗是什么 。
虽然该工具并非总是更新 , GitHub上的最后一次提交是一年多以前了 。 但即便这样 , 它也是进行内存详细分析的最佳方法之一 。
2.RedisSampler
RedisSampler是一个非常强大的工具 , 可以深入了解Redis实例的内存使用情况 。 它由Redis背后的开发人员antirez维护 , 并且对Redis的深入了解通过此工具得以体现 。 该工具的更新频率不是很高 , 但是报告的问题并不多 。
RedisSampler对数据库进行概率扫描 , 并报告以下信息:
键在各种数据类型中的百分比分布-基于键的数量 , 而不是对象的大小 。
基于strlen的字符串类型的最大键 , 以及它们消耗的内存百分比 。
对于所有其他数据类型 , 最大的键被计算并显示为两个单独的列表:一个基于对象的大小 , 另一个基于对象中的项目数 。
对于每种数据类型 , 它还显示“Powerof2distribution” 。 这对于理解数据类型内的大小分布非常有用 。 输出基本上详细说明给定类型的键的大小百分比在>2^x和<=2^x+1范围内 。
3.RDB工具
对于Redis管理员来说 , RDB工具是非常有用的工具套件 。 RDB工具虽然不如RMA或RedisSampler全面 , 但它提供了3条重要信息 。
1.所有键的值(序列化)的大小都大于B字节[用户指定的B] 。 2.最大N键[用户指定N];3.特定密钥的大小:这是从数据库实时读取的 。
该套件在GitHub上有许多活跃的参与者 , 并且经常更新 。 维护者SripathiKrishnan多年来在Redis社区中广为人知 , 因为他提供了许多工具 。
4.Redis-Audit
Redis-Audit是一个概率性工具 , 可用于快速了解内存使用情况 。 它会输出有关密钥组的有用信息 , 例如总体内存消耗 , 该组中的最大TTL , 平均上次访问时间 , 该组中过期的密钥百分比等 。 如果你需要找到占用最多的内存 , 这是一个完美的工具 。 它可在你的应用程序中切换密钥组 。 而且 , 它适用于所有Redis版本 。
5.Redis工具包
RedisToolkit是一个基本的监控解决方案 , 可用于分析两个关键指标:命中率和内存消耗 。 该项目会定期更新 , 以进行错误修复 。 它有易于理解的界面来为你提供所需的确切信息 , 而且适用于所有Redis版本 。
6.Harvest
Harvest是一个概率抽样工具 , 可用于根据键的数量识别10个最大的名称空间/前缀 。 作为一款新工具 , 它在GitHub上并没有吸引太多关注 。 但是 , 如果你是Redis的新手 , 希望确定哪种应用程序数据阻塞了实例 , Harvest上手还是不错的 。 它仅适用于Redisv4.0及更高版本 。