SuperCache的lock选项性能测试

上次说到了SuperCache的lock选项可以解决DogPileEffect。那么效果究竟如何,我做了个简单的测试:

我使用了Ruby 1.9.3-p392,Rails 3.2.12,只建了my_controller.rb,其中模拟了一个10秒慢速请求,为了测试方便,缓存时间只设置为5s:

服务器端使用了unicorn,启动5个worker,测试端开100个并发,50000次请求。

不使用lock:

使用lock

结果很明显,启用了lock之后,SuperCache的长达10s的请求数明显更少,使得平均响应速度有明显的提升。

在实际的生产环境中,一般长达10s的请求很少,只缓存5s的请求也很少,但是通常长时间的请求伴随着都是较高的数据库负载,一旦大量出现,容易拖垮整个服务。通过这种机制,就可以明显地让缓存失效时负载曲线平滑。

暴走漫画的服务器使用了这个机制之后,使得平均响应速度从300ms左右降低至了200ms左右。

发表评论

电子邮件地址不会被公开。 必填项已用*标注