Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Out of Memory Bug Report #1529

Closed
ustun opened this Issue · 3 comments

2 participants

@ustun

I have 16GB machine, with plenty of RAM, but Redis is failing for out of memory.
The kernel is 32 bits, could that be causing this?

$free -m
total used free shared buffers cached
Mem: 16195 9226 6969 0 229 6482
-/+ buffers/cache: 2514 13681
Swap: 2047 95 1952
$uname -a
Linux prod1 3.9.3-x86-linode52 #1 SMP Mon May 20 09:32:28 EDT 2013 i686 i686 i386 GNU/Linux

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[7992] 30 Jan 14:29:44.790 # ------------------------------------------------
[7992] 30 Jan 14:29:44.790 # !!! Software Failure. Press left mouse button to continue
[7992] 30 Jan 14:29:44.791 # Guru Meditation: "Redis aborting for OUT OF MEMORY" #redis.c:2922
[7992] 30 Jan 14:29:44.791 # (forcing SIGSEGV in order to print the stack trace)
[7992] 30 Jan 14:29:44.791 # ------------------------------------------------
[7992] 30 Jan 14:29:44.791 # Redis 2.8.4 crashed by signal: 11
[7992] 30 Jan 14:29:44.791 # Failed assertion: (:0)
[7992] 30 Jan 14:29:44.791 # --- STACK TRACE
/usr/local/bin/redis-server *:6379(logStackTrace+0x45)[0x808f965]
/usr/local/bin/redis-server *:6379(_redisPanic+0x84)[0x808e6c4]
[0xf57fe40c]
/usr/local/bin/redis-server *:6379(_redisPanic+0x84)[0x808e6c4]
/usr/local/bin/redis-server *:6379(redisOutOfMemoryHandler+0x3b)[0x805df3b]
/usr/local/bin/redis-server *:6379(zcalloc+0x79)[0x8064e19]
/usr/local/bin/redis-server *:6379(sdsnewlen+0x7d)[0x8063b4d]
/usr/local/bin/redis-server *:6379(rdbGenericLoadStringObject+0x67)[0x80747a7]
/usr/local/bin/redis-server *:6379(rdbLoadEncodedStringObject+0x17)[0x80748a7]
/usr/local/bin/redis-server *:6379(rdbLoadObject+0x1c0)[0x8075ad0]
/usr/local/bin/redis-server *:6379(rdbLoad+0x1ab)[0x807661b]
/usr/local/bin/redis-server *:6379(loadDataFromDisk+0x2a)[0x806399a]
/usr/local/bin/redis-server *:6379(main+0x2d2)[0x8059fe2]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb75e34d3]
/usr/local/bin/redis-server *:6379[0x805a1d1]
[7992] 30 Jan 14:29:44.802 # --- INFO OUTPUT
[7992] 30 Jan 14:29:44.803 # Out Of Memory allocating 32 bytes!
[7992] 30 Jan 14:29:44.803 # ------------------------------------------------
[7992] 30 Jan 14:29:44.803 # !!! Software Failure. Press left mouse button to continue
[7992] 30 Jan 14:29:44.803 # Guru Meditation: "Redis aborting for OUT OF MEMORY" #redis.c:2922
[7992] 30 Jan 14:29:44.803 # (forcing SIGSEGV in order to print the stack trace)
[7992] 30 Jan 14:29:44.803 # ------------------------------------------------
(END)

Thanks for the help!

@ustun

I moved the database to another server reserved for Redis, first to one that has 4GB (didn't work) , then that has 8 GB and 64 bit kernel and it seems that it started this time. So it seems that Redis needed more than 4 GB (which the 16GB machine had, but could it be that it hit the wall due to the 32-bit kernel on that machine?

@badboy

Redis compiled with 32 bit target uses a lot less memory per key, since pointers are small, but such an instance will be limited to 4 GB of maximum memory usage.
from memory optimization.

So yes, it hit the 4GB limit. Did you set a maxmemory limit? If none is set, Redis sets it to 3GB on 32bit instances on its own.

@ustun

Thank you.

No, I hadn't set maxmem. I wasn't expecting it to consume that much since the dump size is around 700MB.

That link explains the limitation, I'll close the ticket.

@ustun ustun closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.