SERVER_ERROR out of memory on small puts to memcache.

dormando dormando at rydia.net
Tue Nov 13 22:33:14 UTC 2007


If you see it again, please send the list the information I requested 
below :) The slab class starvation issue was solved a while ago, as far 
as I know, by preallocating the slabs. I haven't hit it at all in a long 
time.

-Dormando

Jeremy Blain wrote:
> I've seen this happen in the past as well, but forgot about it till now.
> Bouncing the server also fixed it.
> 
> My not very thorough looking about seemed to suggest the cache had
> allocated all it's slabs already to certain sized objects, and it wanted
> to store the current object in a slab that had chunks of sizes that
> didn't exist.
> 
> 
> 
> 
> Matt Knox wrote:
> 
>> The problem seems to have gone away on bouncing memcache, and we can't
>> replicate it, even though we started memcache in exactly the same way,
>> on the same machines.  We'll probably make 3 1Gb instances instead of
>> the 3G instances if it recurs. 
>>
>> thanks for the help!
>>
>> matt
>>
>>
>> On Nov 11, 2007 9:06 PM, dormando <dormando at rydia.net
>> <mailto:dormando at rydia.net>> wrote:
>>
>>     *pulls old mail out of garbage*
>>
>>     Curious if you're still having this issue? If it's been fixed/etc? I
>>     didn't see any noise on the list about it since.
>>
>>     Matt Knox wrote:
>>     > I consistently get an out of memory error when performing  < 44
>>     byte
>>     > (key+data) puts to memcache, but when 'put'-ing the same key
>>     with data
>>     > that is long enough to exceed 44 chars key + data  , I succeed.  I
>>     > observe this behavior using both the ruby client
>>     (memcache-client 1.5)
>>     > and the python one (python-memcached), although the python
>>     client seems
>>     > to break at 59 chars, rather than 44.
>>
>>     Spiffy! Can't reproduce it on a 64-bit host. Haven't tried 32-bit.
>>
>>     > I'm running memcached 1.2.2 with the following options:
>>     >
>>     > memcached -d -p 11211 -u nobody -c 1024 -m 3072
>>     >
>>     > The offending servers are recent CentOS running 3G of cache each on
>>     > 32-bit boxes with 4G ram-if it matters, I can get details about
>>     these.
>>
>>     I suspect that's a big deal. The maxbytes limit doesn't include random
>>     buffers that are used for connections, stats commands, this and
>>     that. So
>>     you'll be apt to bowl over the 32-bit address space. I've never
>>     trusted
>>     that the different splits even work.
>>
>>     So, if you are still having this issue:
>>
>>     - How'd you build memcached?
>>     - Exactly what version of centos?
>>     - Does it happen after memcached has been up for a long time, or
>>     immediately?
>>     - Does it still happen if you lower the -m option to 1.6-1.8
>>     gigabytes?
>>
>>     Thanks,
>>     -Dormando
>>
>>
>>
> 



More information about the memcached mailing list