Rails 2.3 memcache performance drop


#1

After much effort I upgraded our fairly large Rails app from 2.1 to
2.3. After deployment yesterday I noticed an across the board
increase in response times. It seems that every call to memcache now
takes 10x longer than before. Here are some example numbers from my
development log (below), with memcache running locally. We see
similar scale of performance drop in production as well - average
memcache call before 2ms, now 20ms. It adds up to a significant hit.

Before Rails 2.3 upgrade:

Cached fragment hit: views/homepage_recent_blog_posts (0.00043)
Cached fragment hit: views/homepage_active_threads (0.00033)
Cached fragment hit: views/homepage_weekly_feature (0.00029)
Cached fragment hit: views/homepage_recent_approved_items (0.00036)
Cached fragment hit: views/homepage_popular_items (0.00037)
Cached fragment hit: views/number_of_members (0.00032)

After Rails 2.3 upgrade:

Cached fragment hit: views/homepage_recent_blog_posts (3.2ms)
Cached fragment hit: views/homepage_active_threads (3.5ms)
Cached fragment hit: views/homepage_weekly_feature (2.9ms)
Cached fragment hit: views/homepage_recent_approved_items (2.8ms)
Cached fragment hit: views/homepage_popular_items (3.1ms)
Cached fragment hit: views/number_of_members (6.7ms)

Before I start delving into the memcache internals in Rails 2.3, has
anyone else experienced this degradation on their apps? Is there a
magic ‘make it fast again’ switch that I can flick?


#2

It turned out that the bundled memcache client that came with
ActiveSupport (1.6.5) was, for some reason, much slower than the one
we were using before the Rails 2.3 upgrade (we were using fiveruns-
memcache-client (1.5.0.5), the one that has retries built in).

We’ve replaced the bundled memcache client with our old one, and it
performs much better.


#3

Hi-
Could tell me how you replaced it? I just installed the newest gem
1.7.2 and would like to use it with rails. What’s the procedure to
remove the bundled gem?
Thanks.
Erik


#4

On Sun, May 24, 2009 at 10:07 AM, erik removed_email_address@domain.invalid wrote:

ActiveSupport (1.6.5) was, for some reason, much slower than the one

increase in response times. It seems that every call to memcache now
Cached fragment hit: views/homepage_recent_approved_items (0.00036)
Cached fragment hit: views/number_of_members (6.7ms)

Before I start delving into the memcache internals in Rails 2.3, has
anyone else experienced this degradation on their apps? Is there a
magic ‘make it fast again’ switch that I can flick?

I was told by Mike P. that Rails 2.3+ will automatically use any
memcache-client
gem you have greater than 1.6.4.

Good luck,

-Conrad