【发布时间】:2012-11-01 19:47:14
【问题描述】:
过去几天我们一直在摸索,试图理解为什么在我们的 Rails 项目中使用 redis/ohm 时有些事情看起来有点太慢了。
它的要点是一些对 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 毫秒) 内完成
- 使用 rails 控制台并在循环中使用完全相同的 slug/id 运行快速基准测试,观察到相同的行为,即其中一些(相同)请求似乎比大多数其他请求花费的时间要长得多
我们的 redis 配置几乎是开箱即用的,基本上没有任何调整。在测试期间,服务器没有做太多其他事情。
有什么建议可以提高性能/测试是什么在 redis 和 ohm/rails 之间减慢了这么多速度??
【问题讨论】:
标签: ruby-on-rails-3 performance redis ohm