Database Redis使用高内存和小数据集
我正在运行redis服务器,根据prstat,它使用了3721M内存。当我在redis cli中运行info时,我得到的内存是:Database Redis使用高内存和小数据集,database,redis,Database,Redis,我正在运行redis服务器,根据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,它似乎也不会影响内存消耗 这可能是对一个可能正在分配内存的设
used_memory:8739028
used_memory_human:8.33M
used_memory_rss:8739028
mem_fragmentation_ratio:1.00
这是在2GB云实例上运行的,因此我的内存利用率始终处于结束状态。然而,即使我在redis上使用flushall,它似乎也不会影响内存消耗
这可能是对一个可能正在分配内存的设置或者redis为什么在我的实际数据上使用这么多的想法造成的吗
谢谢大家!
编辑:
另外,我在另一个实例上运行相同的安装应用程序/redis,内存消耗仅为554M,使用的内存为568M
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文件,因为它包含您需要的数据,我不建议这样做。您可以尝试删除您可以删除的内容,然后执行一个保存操作,我相信redis会在关机时进行保存,这样可能是多余的,然后重新启动
如果您还没有将redis升级到最新版本,那么现在正是将redis升级到最新版本的好时机。什么版本的redis?你和谁一起主持?你自己安装了Redis吗?你的redis.conf看起来是什么样子?也许能让我们更进一步地了解到底发生了什么。@j.w.r,Redis 2.2.2版,由Joyent托管,自己安装了Redis。我应该粘贴整个配置还是有任何特定的项目要发布?配置的“限制”、“虚拟内存”(如果存在)和“高级”部分应该可以。另外,prstat的大小和RSS值是多少?3721M的数字听起来像是包含VM/共享内存/内存映射文件的大小,可能会产生误导,RSS通常是我所看到的。试着运行redis的pmap-x PID,然后发布输出结果。@j.w.r,谢谢你刚刚用pmap的结果更新了。从prstat看,大小是3721M,RSS是3716M。很抱歉响应太慢,一直很忙。。另一个问题:这个过程是什么时候开始的?它已经运行了几个小时、几天、几周了吗。