redis ohm性能缓慢

时间:2012-10-04 15:32:14

标签: ruby-on-rails-3 performance redis ohm

我们在过去几天试图理解为什么有些事情在我们的rails项目中使用redis / ohm看起来有点太慢了。

它的要点是,对欧姆/ redis的一些请求需要大约100-200毫秒,考虑到我们对快速性能的高期望,这似乎相当高。

我们正在运行的命令如下:

Stats::TermStats.find(term_slug: 'term_slug', user_id: 123).to_a

在我们看来,我们没有做任何极其复杂或疯狂的事情。到目前为止,我们对此单个命令的分析(使用miniprofiler)揭示了以下内容:

  • 其中一些调用在2-4毫秒内完成(这是好/好/坏?)
  • 有些人需要100-200毫秒(这肯定感觉不好)
  • 在redis-client上使用slowlog get并不会在redis上显示任何特别慢的内容。大多数redis命令在不到20 微秒(0.02 ms)
  • 内完成
  • 使用rails控制台并在循环中使用完全相同的slug / id运行快速基准测试,观察到相同的行为,即这些(相同)请求中的一些似乎比其他大多数请求花费的时间长得多

我们的redis配置几乎没有开箱即用,基本上没有调整。在测试期间,服务器没有做太多其他事情。

任何建议如何提高性能/测试redis和ohm / rails之间的东西如此之慢?

1 个答案:

答案 0 :(得分:1)

如果有人感兴趣,我们似乎找到了这个问题的原因,甚至是解决方案

TL; DR:use hiredis + tune the ruby GC parameters