SERVER_ERROR out of memory

Balázs Lécz leczbalazs at gmail.com
Mon Feb 6 12:04:27 UTC 2006


Hi Jacques!

To rule out operating system level limits, I purposely lowered the memory limit
of the memcached process by supplying -m 1000.
The problem persisted.
I implemented a retry count histogram in items.c and found that the
built-in limit
of 50 is too low. I set the retry limit to 2000 to see what happens.
It did not solve the problem, only deferred the appearance of the
first "out of memory" error :(

Please note, that we already have 3 months of problem-free operation
with the exact
same settings/kernel/hw/memcached.

The memcached process starts giving "out of memory" errors "well after" reaching
the -m limit (that is: a few minutes after it started rotating out
items off the LRU).

What I learned so far is that the search function in item_alloc() can
not unlink an item
in 50 (the default) or 100 or 2000 tries.
Setting a higher retry limit only defers the problem but does not solve it.


--
Balázs Lécz


On 2/6/06, Jacques Caron <jc at oxado.com> wrote:
> Hi,
>
> At 10:08 06/02/2006, Balázs Lécz wrote:
> >The initial configuration for our memcached was:
> >"-m 3000 -p 11401 -u root" (we had an 82% hit ratio with this memory setting).
>
> Check for hard limits (see limit -h) on your processes, and kernel
> settings related to the max size of a process (don't know the
> specifics on Linux, on FreeBSD that would be maxdsiz).
>
> Hope that helps,
>
> Jacques.
>


More information about the memcached mailing list