gpt4 book ai didi

ruby-on-rails - Rails 5 升级后性能大幅下降

转载 作者:行者123 更新时间:2023-12-04 06:34:50 25 4
gpt4 key购买 nike

我们已完成将应用程序从 Rails 4.2 升级到 5.2。当我们在 5.2 版本上运行负载测试时,它只能处理 4.2 版本的一半负载。在负载测试期间查看 NewRelic 统计信息时,似乎到处都变慢了——几乎每个请求、ActiveRecord 调用、redis 调用、ruby 等。我们已经确认它与另外发生的其他升级无关——ruby 升级、升级pg gem,或者升级puma。在研究过程中,我发现与升级相关的唯一性能问题已得到修复。

有没有人遇到过类似的事情或有关于在哪里看的指示?

到目前为止我们尝试过的:

1. Check non-rails related upgrades that happened at the same time:
- Upgrade 4.2 branch to same version of ruby to see if that has any impact (no impact)
- Downgrade puma and pg gems in Rails 5 branch (no impact)
2. Examine performance traces for slower transactions and DB queries. Remove the slowest interactions from the load test to see if the overall slowest continues (it does).
3. Test if slowness appears in Rails 5.1 (it does).

我们计划尝试的内容:
1. Test if slowness appears in Rails 5.0.
2. See if slowest can be detected in single user use rather than load test.
3. Use https://github.com/tleish/ruby-prof-rails to see if we can get more statistics to examine.
4. Downgrade all gems except the ones we absolutely need for the Rails 5 upgrade and see if problem still exists.

最佳答案

这最终是 Rack::Timeout、Heroku 和 Puma 的组合。在重负载下,我们有时会达到 28 秒的 Rake::Timeout 值。由于某种原因,升级后 Rake::Timeout 值和 Heroku 的 30 秒路由器超时 (H12) 之间的 2 秒是不够的。结果,进程在 Rake::Timeou 之前被 Heroku 杀死,这导致 Puma 中的级联效应使同一服务器上的大量其他请求也超时。我们通过将 Rake::Timeout 值调整为 25 秒来修复它,一切正常。

关于ruby-on-rails - Rails 5 升级后性能大幅下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59432762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com