The release notes for memcached versions 1.4.24 and 1.4.25 describe several improvements designed to improve performance. One of the most substantial is the introduction of a slab rebalancer / automover.
As data is stored into memcached, it pre-allocates pages of memory into slab classes of a particular size (ie: 90 bytes, 120 bytes). If you fill your cache with 90 byte objects, and then start writing 120 byte objects, there will be much less space available for 120 byte objects. With the slab automover improvements, freed memory can be reclaimed back into a global pool and reassigned to new slab classes.
This could be a major win for us, because our memcached objects (raw and parsed revisions) are highly irregular in size.
There is also a new LRU implementation, which was designed to provide better protection for hot items, to perform most evictions asynchronously using a background thread, and to reduce lock contention in read operations. This could also be a substantial win for us.
The wiki makes the following suggestion:
To get all of the benefits of the last few releases, we recommend adding the following startup options: -o slab_reassign,slab_automove,lru_crawler,lru_maintainer A modern start line includes a few other items: -o slab_reassign,slab_automove,lru_crawler,lru_maintainer,maxconns_fast,hash_algorithm=murmur3 Many of these options are likely to become defaults in the future.
I'd like to ask that someone in ops evaluate 1.4.25, and package / deploy it to all memcached servers if it works well.