GNU malloc vs. slab alloc
Torsten Foertsch
torsten.foertsch at gmx.net
Fri Apr 28 10:06:43 UTC 2006
On Friday 28 April 2006 01:53, you wrote:
> Back in the day, memcached used GNU malloc. After a week of usage in
> production on LiveJournal, CPU usage would start growing, and then
> growing really rapidly. After day 8, it'd be pretty much unusable, as
> memcached would be at 99.9% CPU usage the whole time.
>
> So we switched to Judy.... same thing.
>
> Then we wrote the slab allocator and haven't had problems in years.
> (and literally, we've had memcached instances running for nearly a year
> at a time....)
Yes, I know, I have read doc/memory_management.txt. That's why it is a command
line option.
> So I'm a little skeptical. I'm not sure your test is harsh enough.
The slab allocator is certainly best choice when LRU feature is used heavily.
In this case the cache is almost everytime full. The allocation process then
looks for the least recent block that is bigger than the currently needed one
and frees it only to allocate it again with a slightly different size. This
leads of course to a fragmentation problem.
With active expiry this changes. Now expired items are early removed from the
cache. Hence, there are always several holes to choose from. This means less
fragmentation.
Torsten
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.danga.com/pipermail/memcached/attachments/20060428/ca434f8b/attachment.pgp
More information about the memcached
mailing list