Redis 4 添加了主动内存碎片整理(来源:发行说明):
主动内存碎片整理。如果使用 Jemalloc 分配器(Linux 上的默认设置),Redis 能够在联机时对内存进行碎片整理。对于分配器无法将碎片保持得足够低的工作负载非常有用,因此唯一的可能性是 Redis 和分配器协作以对内存进行碎片整理。
在 Redis 5 中,该功能(现在称为版本 2)得到了改进:
来源 1:Redis 主要开发者 Salvatore Sanfilippo 的推文
主动碎片整理版本 2。对正在运行的服务器进行内存碎片整理是黑魔法,但 Oran Agra 改进了他过去的努力,现在它比以前效果更好。对于长时间运行且容易造成 Jemalloc 碎片的工作负载非常有用。
资料来源2:AWS发布Redis 5
上一版本的亮点之一是 Redis 获得了在线进行内存碎片整理的功能。它的工作方式非常聪明:Redis 扫描键空间,对于每个指针,询问分配器将其移动到新地址是否有助于减少碎片。此版本附带了所谓的主动碎片整理 2:它更快、更智能且延迟更低。此功能对于分配器无法将碎片保持得足够低的工作负载特别有用,因此策略是让 Redis 和分配器合作。为此,必须使用 Jemalloc 分配器。幸运的是,它是 Linux 上的默认分配器。
问题:假设您已经在使用 Jemalloc,有什么理由不总是设置activedefrag yes
呢?
鉴于替代方案是重新启动实例来处理碎片(这是一个很大的问题),并且鉴于到目前为止我所看到的 activedefrag 的开销似乎相当低,该选项似乎太有用了,默认情况下无法禁用。
或者是否存在会损害性能的情况?
归档时间: |
|
查看次数: |
2515 次 |
最近记录: |