我正在运行 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 在我的实际数据上使用了这么多?
谢谢!
编辑:
另外补充一下,我在另一个实例上运行相同的设置(应用程序/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
最佳答案
问题有点老,但我以前遇到过这个问题。如果我没记错的话,我关闭了我的 redis 实例,删除了 RDB 文件(如果适用)并重新启动了 redis。 如果不想删除 RDB 文件,因为它包含您需要的数据,我不建议这样做。您可以尝试 DEL
尽你所能,然后做一个SAVE
(我相信 redis 在关闭时会执行 SAVE
,所以这可能是多余的)然后重新启动。
如果您还没有将 Redis 升级到最新的稳定版,那将是个好时机。
关于database - Redis 使用高内存和小数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12077154/