处理Redis产生的内存碎片

Redis 中有专门的参数设置用来进行自动清理内存碎片:activedefrag yes。

这个命令是启动清理功能的,这还不够,Redis 中还需要其他的条件限制才能够进行清理。

下面参数都是满足任一条件后就可以进行清理:

active-defrag-ignore-bytes 100mb:碎片达到100MB时,开启清理。

active-defrag-threshold-lower 10:当碎片超过 10% 时,开启清理。

active-defrag-threshold-upper 100:内存碎片超过 100%,尽最大清理。

在处理的过程中,为了避免对正常请求的影响,同时又能保证性能。Redis 同时还提供了监控 CPU 占用比例的参数,在满足以下条件时才会保证清理正常开展:

active-defrag-cycle-min 5:清理内存碎片占用 CPU 时间的比例不低于此值,保证清理能正常开展。

active-defrag-cycle-max 75:清理内存碎片占用 CPU 时间的比例不高于此值。一旦超过则停止清理,从而避免在清理时,大量的内存拷贝阻塞 Redis,导致其它请求延迟。

posted @ 2020-12-07 10:57  缤纷世界  阅读(445)  评论(0编辑  收藏  举报