memory doctor 命令

命令MEMORY DOCTOR 会列出 Redis 服务器遇到的不同类型的内存相关问题,并提供相应的解决建议。


语法

memory doctor

该指令主要列举条件判断,满足条件的给出检查结果和建议,主要包含以下几点,满足其中一点,就给出诊断结果和建议,检测报告会提示所有检测出的问题,检测结构主要为一下几种情况:

  • 无异常 :并没有检测出问题;
  • 空实例/内存占用小 :示例实际分配内存小于5M,无法进一步进行检测(代码: mh->total_allocated <(1024*1024*5) );
  • 历史内存与当前内存比例过大 :redis自启动以来分配的内存峰值/当前的内存大小结果大于 1.5(代码: ((float)mh->peak_allocated / mh->total_allocated)> 1.5 );
  • 内存碎片率 :内存碎片率大于1.4(代码: mh->fragmentation > 1.4 );
  • 一般客户端单实例内存 :非从库客户端的单实例内存占用大于200KB(代码: mh->clients_normal / numclients >(1024*200) );
  • 从库客户端单实例内存 :在有从库的前提下,从库客户端的单实例内存占用大于10M(代码: numslaves > 0 && mh->clients_slaves / numslaves >(1024*1024*10) );