rails应用程序非常慢

Posted

技术标签:

【中文标题】rails应用程序非常慢【英文标题】:rails app extremely slow 【发布时间】:2012-10-12 10:26:07 【问题描述】:

我知道有很多类似的问题,但我无法从这些问题中找到解决方案。所以我们开始.. 我在索尼 vaio 上使用 Ubuntu 12.04。我正在使用 Ruby1.9.3-p194 运行 Rails 3.2.8。我正在使用瘦服务器而不是 webbrick。我也运行了 mongoid、elasticseaerch 和 redis。

页面加载在本地主机上花费了非常长的时间(超过 10 分钟以上)。我知道这个应用程序并不慢,因为它在我同事的 macbook 上运行得很好。我不确定是什么导致它的加载时间非常长。

感谢任何提示。我真的很伤心/不开心,因为它在工作中大大减慢了我的速度。我问过我的同事,但他们似乎都不知道答案。

该应用程序在公司的生产机器上运行良好。这似乎是我的笔记本电脑上的问题。请记住,我有一台速度非常快的笔记本电脑(i5、6gb RAM)

【问题讨论】:

【参考方案1】:

查看您的日志。在控制台使用tail -f 可以查看各种日志。在您的 rails 应用程序中,查看tail -f log/development.log 您还需要查看您的瘦服务器日志。由于您的同事正在运行相同的代码库,因此 Rails 中的任何实际代码可能不会花费那么长时间。因此,您的第一步是确定您的应用在 http 请求中的哪个时间点卡住了 10 分钟。

另外,请确保您拥有与同事相同的数据库。消除尽可能多的变量,并从您的已知开始。

我会问自己的问题:

请求是否立即到达 rails? 是否是由于您的本地配置导致问题的另一个组件(redis、mongodb)?

也就是说,实际完成的 10 分钟请求很奇怪 - 你是否覆盖了超时?

【讨论】:

感谢您的回复。我认为它会立即到达 Rails 服务器,但响应似乎很长。我不确定 redis 或 mongo 是否会造成任何麻烦。关于如何检查的任何提示?以及如何覆盖超时?【参考方案2】:

Rails 使用了多少内存和 CPU?有多少内存和 CPU 可用? Rails 应用程序货车有时会泄漏内存并爬行停止。

【讨论】:

感谢您的回复。 rails 正在使用大约 191 - 300mb 的内存,具体取决于它正在执行的工作类型。它使用大约 2% 到 5% 的 cpu(同样,取决于任务)。平均而言,有 50% 的可用内存(尽管交换内存使用率似乎非常高)并且剩余大量 cpu(大约 70-80% 可用) 所以我有一个 256MiB 的交换空间,已经用完了。现在我将其更改为 2.2GB(又增加了 2GB),但仍然没有任何改善。我添加了 rails-dev-tweaks,我认为它减少了一点时间,但由于加载时间长,仍然无法使用。

以上是关于rails应用程序非常慢的主要内容,如果未能解决你的问题,请参考以下文章

乘客托管的 Rails 应用程序*痛苦地*慢,但服务器是野兽

使用 Rails 作为大型网站的框架

ActionDispatch::Routing::RouteSet#call Rails 4.1 真的很慢

当我甚至不打'/'时,Rails开发服务器读错了请求“开始获取'/'...”

如何找出我的应用程序运行缓慢的原因?

iPhone设备上的sencha触摸应用程序非常慢