【问题标题】:Understanding Rails runtime metrics了解 Rails 运行时指标
【发布时间】:2013-08-26 19:48:18
【问题描述】:

我正在尝试诊断 Rails 4 中的性能问题,但不知道发生了什么。这是我在服务器上看到的时间:

在 2816 毫秒内完成 200 次 OK(查看次数:644.1 毫秒 | ActiveRecord:162.0 毫秒 | Solr:0.0 毫秒)

我(大部分)对我的 Views 时间和 ActiveRecord 时间感到满意,但不明白为什么 Completed 时间 (2816ms) 如此之大。

那个时间代表什么?有什么办法可以减少这个时间吗?

【问题讨论】:

  • 它可以取决于您的 Gems:例如,我在开发模式下使用 mini-profiler 来跟踪 SQL 查询和渲染调用。这个 gem 在完成时间上增加了很多毫秒。如果您想测试应用的性能,请确保使用生产模式(在生产模式下运行之前使用rake assets:precompile
  • @MrYoshiji 我在暂存(近乎生产)环境中获得这些结果,并且它用于 api,因此视图是 json 渲染。如果可以的话,我很想使用迷你分析器! :D

标签: ruby-on-rails performance activerecord heroku ruby-on-rails-4


【解决方案1】:

您所展示的是,超过 2/3 的请求处理时间未包含在模型/视图中。还剩下什么?其他代码在您的控制器中运行并请求处理生命周期。

对此进行分析的最佳方法是安装 newrelic RPM gem 并运行本地分析器:

将 gem 添加到您的 Gemfile:

gem 'newrelic_rpm'

在 config/newrelic.yml 的开发中启用本地分析:

development:
  <<: *default_settings
  monitor_mode: false
  developer_mode: true

执行您的请求 2-3 次以预热您的 Rails 应用程序,然后访问本地 newrelic 应用程序以查看跟踪并追踪正在发生的事情:

http://localhost:3000/newrelic

【讨论】:

  • 感谢您的周到回答!我正在使用 newrelic,所以我会尝试本地分析。
  • 性能调优是我的爱好。如果您在解释发生的事情时遇到问题,请随时给我留言:winfield.peterson@gmail.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
相关资源
最近更新 更多