为什么 ActionDispatch::Routing::RouteSet 需要这么长时间

2024-01-02

我在 Rails 4.2.1 之上使用 Grape 为我们的应用程序提供 API。

但是当我今天检查 Newrelic 的性能时我发现RackApp Proc#call and Grape API::Root#call占用了大量的时间。 (见截图)

然后我尝试记录中间件消耗的时间rack_timer并发现ActionDispatch::Routing::RouteSet占用了大部分时间:

Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 67.12579727172852 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 101.51457786560059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 84.18059349060059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 1236.2565994262695 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 8.124351501464844 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 55.65309524536133 ms

甚至有需要 500ms - 1000ms 的情况ActionDispatch::Routing::RouteSet。我怎样才能找到这个问题,我怎样才能知道我在 Rails 路线中做错了什么?

非常感谢您的帮助。


对我来说,事实证明 Newrelic ruby​​ 代理不能与 Rocket_pants(我用来构建 API 端点的 gem)一起使用。

有一个第三方 gem 'rocket_pants-rpm' 可以解决这个问题,但是原来的 gem 从 newrelic_rpm 版本 3.9+ 开始停止工作,要解决这个问题,请尝试使用分叉版本:https://github.com/SpartaSales/rocket_pants-rpm https://github.com/SpartaSales/rocket_pants-rpm

这就是添加这个 gem 后 newrelic 报告对我来说的样子。

newrelic 请求时间百分比 https://i.stack.imgur.com/EVRvj.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 ActionDispatch::Routing::RouteSet 需要这么长时间 的相关文章

随机推荐

  • 如何在 CloudFormation 模板中创建一些随机或唯一值?

    有没有办法在 CloudFormation 模板中创建某种随机或唯一值 为什么我需要这个 在我们的模板中 我们有许多自定义命名的资源 例如AWS AutoScaling LaunchConfiguration与指定的LaunchConfig
  • P 值、显着性水平和假设

    我对 p 值的概念感到困惑 一般来说 如果 p 值大于 alpha 通常为 0 05 我们就无法拒绝原假设 如果 p 值小于 alpha 我们就拒绝原假设 据我了解 如果 p 值大于 alpha 则两组之间的差异只是来自采样误差或偶然 到目
  • 在 Go 中实现 Ruby 风格的笛卡尔积

    我想要得到的笛卡尔积a b c d a a1 b b1 b2 c c1 c2 c3 d d1 这是 Ruby 代码 e b c d print a product e 输出是 a1 b1 c1 d1 a1 b1 c2 d1 a1 b1 c3
  • 相当于 vb.net 中的 vb6.Format 函数,无需使用 Microsoft.Visualbasic.Compatibility.dll [重复]

    这个问题在这里已经有答案了 可能的重复 有没有办法以编程方式将 VB6 格式字符串转换为 NET 格式字符串 https stackoverflow com questions 4072490 is there a way to progr
  • Microsoft.NET.Sdk 和 Microsoft.NET.Sdk.Web 之间有什么区别

    我有一个包含两个主机项目的解决方案 一个是Web Host https learn microsoft com en us aspnet core fundamentals host web host view aspnetcore 2 1
  • 我的教义真的很慢。简单查询,一秒出结果

    这是我的设置 Windows Server 2008 R2mysql 5 1 562PHP 5 3 2教义1 2 任何人都知道为什么我的查询需要大约一秒钟才能执行一个简单的查询 echo date Y m d H i s time micr
  • 如何在 OpenSMILE 中创建自定义配置文件

    我正在尝试使用 OpenSMILE 从音频样本中提取一些功能 但我意识到设置配置文件是多么困难 该文档不是很有帮助 我能做的最好的事情就是运行一些提供的示例配置文件 查看结果 然后进入配置文件并尝试确定指定功能的位置 这是我所做的 我使用了
  • AngularJS Linky 过滤器停止传播

    我有一个span标签看起来像这样 span span 在 ng repeat 内 但我有一个问题 如果item Name包含电子邮件或链接链接过滤器会更改 html 并插入锚标记 现在 当我单击链接时 ng click 会触发并且锚点打开
  • 如何在mvc5中将文化设置为全局

    我正在使用资源文件来切换在 mvc5 中构建的 Web 应用程序中的语言 在索引文件中 它读取我设置的文化值 我从layout cshtml 调用设置区域性方法 并使用以下代码调用其值 Layout Views Shared Layout
  • 将网格高度调整为可用屏幕,无需滚动条

    我应该使用什么网格属性来使网格完美地保持在屏幕内 Using height 100vh on wrapper调整高度 但引入了滚动条 为了删除不需要的滚动条 我尝试设置body margin 0 但我希望在整个网格周围有一个边距 而不产生滚
  • 响应对象 - 使用 Mollie 和 Omnipay 付款

    我正在尝试在 Laravel 项目中使用 Omnipay 和 Mollie 创建付款方式 我正在使用以下 2 个库 https github com barryvdh laravel omnipay https github com bar
  • Python:计算一组整数中所有元素之间的差异[重复]

    这个问题在这里已经有答案了 我想计算一组整数中所有元素之间的绝对差 我正在尝试做abs x y where x and y是集合中的两个元素 我想对所有组合执行此操作 并将结果列表保存在一个新集合中 我想计算一组整数中所有元素之间的绝对差
  • 参考错误:Jest 环境被拆除后“导入”文件

    我是测试反应本机应用程序的新手 我从 Jest 开始 运行名为 App test js 的测试 该测试通过了 但我收到参考错误 You are试图importJest 环境被拆除后的文件 我努力了 jest useFakeTimers an
  • 为 IQueryable 生成表达式 [重复]

    这个问题在这里已经有答案了 我正在使用 LINQ gt WCF 数据服务 gt EF 它支持 LINQ 的子集 但有一些注意事项 一旦学习了各种事情的技巧和解决方法 我就没有遇到任何麻烦 但我想制作一个可重用的表达式生成器来仅比较Date的
  • Git 合并在我的文件中留下了 HEAD 标记

    我尝试使用 Git 在命令行中合并文件 这时出现一条错误消息 告诉我合并已中止 我以为事情就这样结束了 但后来我意识到我的文件中有 gitmarks 就像这样 start expression validchar 0 9a zA Z int
  • 如何使倒计时器在页面刷新时不重置

    我正在为我的项目创建一个在线考试页面 我有一个倒计时器 但它会在页面刷新时重置 怎样才能让它不重置呢 通过从数据库获取时间来设置计时器 我正在使用 php mysql 请帮我 这是我的代码
  • ODBC 和 OleDB 有什么区别?

    我在这里找到了这个问题 OLEDB 与 ODBC https stackoverflow com questions 271504 oledb v s odbc 这给了我更多信息 但并没有真正回答我要问的问题 所以我将从那里开始 我正在使用
  • React 和 Material-UI:使用 TypeScript 在 createStyles() 中未定义主题

    我正在学习 React with TypeScript 并使用 Material UI 框架作为前端 我尝试让媒体查询正常工作 但出现错误 未捕获的类型错误 无法读取未定义的属性 up 在样式 webpack internal app co
  • SQL 查找查询结果的大小

    所以基本上我正在执行 SQL 选择查询 但我想知道我要撤回多少数据 多少千字节 实际上 显示客户统计数据 http blog sqlauthority com 2009 10 01 sql server sql server managem
  • 为什么 ActionDispatch::Routing::RouteSet 需要这么长时间

    我在 Rails 4 2 1 之上使用 Grape 为我们的应用程序提供 API 但是当我今天检查 Newrelic 的性能时我发现RackApp Proc call and Grape API Root call占用了大量的时间 见截图