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)
);