> I've seen some FUD from people claiming that memcached doesn't scale > very well on multiple CPUs, which surprised me. > > Is there an accepted benchmark we can use to examine performance in more > detail? > > Does anybody have any testing results in that area?
While we don't have a standard set of benchmarks yet, we do test it, people have tested it, and it's routinely heavily hammered in production all over the place, including several top 10 websites. The FUD is easy enough to dispell: just squint at their numbers a little bit and think it through carefully. Most of these are saying that you hit a "wall scaling memcached" past, say, 300,000 requests per second on a single box. (though I think with the latest 1.4 it's easier to hit 500,000+). Remember that 300,000 requests per second at 1k per request is over 2.5 gigabits of outbound alone. If your requests are much smaller than that, you might skid in under 1gbps. For sanity's sake though, take a realistic look at how many requests per second you actually hit memcached with. 100,000+ per second per box is unlikely but sometimes happens, and works fine. Even large sites are likely doing less than that, as they will need more memory before hosing a box. "memcached doesn't scale!" is a pile of horseshit. The same industry claims all the single-threaded NoSQL stuff "Scales" just fine. Figure out what your own needs are for requests per second, then try to do that with your hardware. Odds are good you'll be ale to hit 10x-100x that mark. I think sometime this year we'll be making it "scale" across CPU's better than it presently does, but the only people who would ever notice would be users with massive memcached instances on 10gbps ethernet servicing small requests. I'm sure there's someone out there like that, but I doubt anyone listening to the FUD would be one of them. -Dormando