我正在运行redis-server,根据prstat
它正在使用3721M的内存。当我在redis-cli中运行info
时,我得到了这个内存:
used_memory:8739028
used_memory_human:8.33M
used_memory_rss:8739028
mem_fragmentation_ratio:1.00
这是在2GB云实例上运行,因此我的内存利用率始终结束。但是,即使我在redis上flushall
,它似乎也不会影响内存消耗。
这可能是针对可能正在分配内存的设置,还是为什么redis在我的实际数据上使用了这么多?
谢谢!
编辑:
另外,我只是在另一个实例上运行相同的设置(application / redis),内存消耗仅为554M,数据为used_memory_human:5.68M
。
来自pmap的回复:
[root @] #pmap -x 27425
27425: /opt/local/bin/redis-server /opt/local/etc/redis.conf
Address Kbytes RSS Anon Locked Mode Mapped File
08046000 8 8 8 - rw--- [ stack ]
08050000 208 160 - - r-x-- redis-server
08093000 8 8 4 - rwx-- redis-server
08095000 3807836 3804160 3764928 - rwx-- [ heap ]
FE9BD000 12 12 - - r-x-- libpthread.so.1
FEAF0000 456 456 - - r-x-- libnsl.so.1
FEB72000 8 8 4 - rw--- libnsl.so.1
FEB74000 20 16 4 - rw--- libnsl.so.1
FEBA0000 304 304 - - r-x-- libm.so.2
FEBFB000 16 16 - - rwx-- libm.so.2
FEDA0000 4 4 - - r--s- dev:531,392 ino:3736139179
FEDB0000 4 4 - - rwxs- [ anon ]
FEDC0000 24 12 8 - rwx-- [ anon ]
FEDD0000 4 4 4 - rwx-- [ anon ]
FEDE0000 1216 1216 - - r-x-- libc.so.1
FEF10000 36 36 24 - rwx-- libc.so.1
FEF19000 8 8 4 - rwx-- libc.so.1
FEF20000 4 4 4 - rwx-- [ anon ]
FEF30000 56 56 - - r-x-- libsocket.so.1
FEF4E000 4 4 - - rw--- libsocket.so.1
FEF50000 4 4 4 - rwx-- [ anon ]
FEF60000 4 4 - - r-x-- libdl.so.1
FEF70000 4 4 - - r--s- ld.config
FEF80000 4 4 4 - rw--- [ anon ]
FEF90000 4 - - - rw--- [ anon ]
FEFA0000 4 4 4 - rwx-- [ anon ]
FEFB0000 4 4 - - rwx-- [ anon ]
FEFB7000 208 208 - - r-x-- ld.so.1
FEFFB000 8 8 4 - rwx-- ld.so.1
FEFFD000 4 4 - - rwx-- ld.so.1
配置中没有启用限制,这里是虚拟内存和高级:
VIRTUAL MEMORY
vm-enabled no
vm-swap-file /tmp/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
ADVANCED CONFIG
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
答案 0 :(得分:0)
问题有点陈旧但我以前遇到过这个问题。如果我没记错的话,我会关闭我的redis实例,删除RDB文件(如果适用)并重新启动redis。 如果由于它包含您需要的数据而不想删除RDB文件,我建议您不要这样做。您可以尝试DEL
尽可能地做,然后执行{{1} (我相信redis在关闭时会SAVE
,因此可能是多余的)然后重新启动。
如果没有,请将redis升级到最新的稳定版。