Pau*_*ves 6 memory optimization list redis
我正在尝试优化列表的内存使用情况.看完这个伟大的内存优化的文章我强迫ziplists的使用,看看它会,但即使我的RDB减少了70%,由Redis的消耗的内存小了效果降低...
以下是有关我的实例的一些数据:
# Memory
used_memory:28894160544
used_memory_human:26.91G
used_memory_rss:29423480832
used_memory_peak:28894160544
used_memory_peak_human:26.91G
used_memory_lua:33792
mem_fragmentation_ratio:1.02
mem_allocator:jemalloc-3.6.0
# Keyspace
db0:keys=8433742,expires=0,avg_ttl=0
Run Code Online (Sandbox Code Playgroud)
然后,我应用了这些设置:
list-max-ziplist-entries 1000
list-max-ziplist-value 10000
Run Code Online (Sandbox Code Playgroud)
(我知道,这些都是高可能是危险的......我只是想保证覆盖所有列表...大多数列表有75个项目(我会强迫他们保持这种大小)与每件小于1000个字节)
导致:
# Memory
used_memory:26486158232
used_memory_human:24.67G
used_memory_rss:26687750144
used_memory_peak:26553209288
used_memory_peak_human:24.73G
used_memory_lua:33792
mem_fragmentation_ratio:1.01
mem_allocator:jemalloc-3.6.0
Run Code Online (Sandbox Code Playgroud)
此外,我调查了之前和之后的几个列表,看看他们发生了什么......这里有一些例子:
清单A(75项):
- Before:
Value at:0x7f0ab6b04940 refcount:1 encoding:linkedlist serializedlength:29332 lru:0 lru_seconds_idle:2623116
- After:
Value at:0x7f9b8a464920 refcount:1 encoding:ziplist serializedlength:8151 lru:0 lru_seconds_idle:2623697
Run Code Online (Sandbox Code Playgroud)
清单B(56项):
- Before:
Value at:0x7f0e62d83270 refcount:1 encoding:linkedlist serializedlength:28797 lru:0 lru_seconds_idle:2623201
- After:
Value at:0x7f9ee1b9dfa0 refcount:1 encoding:ziplist serializedlength:4438 lru:0 lru_seconds_idle:2623692
Run Code Online (Sandbox Code Playgroud)
列表C(15项):
- Before:
Value at:0x7f0c8fbdcfb0 refcount:1 encoding:linkedlist serializedlength:1160 lru:0 lru_seconds_idle:2623249
- After:
Value at:0x7f9d3852d330 refcount:1 encoding:ziplist serializedlength:720 lru:0 lru_seconds_idle:2623675
Run Code Online (Sandbox Code Playgroud)
这使我分别减少了72%,85%和38%的物体
除了我想要的东西外,一切都减少了很少的内存,这是Redis消耗的总内存:(
所以我主要有3个问题:
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |