一个Rails应用程序具备以下特点:
一些模型从外部MySQL数据库中访问数据。以下代码被用于将外部数据库设置给该模型:
在我的笔记本上本地运行应用程序时,我得到了以下请求执行时间:
当我将它上传到Heroku并在应用程序中使用时,同一请求的执行时间如下:
一些模型从外部MySQL数据库中访问数据。以下代码被用于将外部数据库设置给该模型:
class Foo < ActiveRecord::Base
establish_connection ENV['EXTERNAL_DATABASE_URL']
self.table_name = 'foos'
...
end
在我的笔记本上本地运行应用程序时,我得到了以下请求执行时间:
Completed 200 OK in 374ms (Views: 118.1ms | ActiveRecord: 198.6ms)
当我将它上传到Heroku并在应用程序中使用时,同一请求的执行时间如下:
Completed 200 OK in 8000ms (Views: 901.6ms | ActiveRecord: 6609.2ms)
当我在Heroku上运行时,无论是ActiveRecord还是Views的时间都非常长。
- 可能是外部数据库的问题吗?
- 我如何检查这个问题?
- 如果不是,可能是什么问题?
编辑
NewRelic显示瓶颈在于数据库。然而,显然不是数据库在查询上花费的时间,因为当我本地运行时,它并不需要那么长时间。所以我必须认为这是延迟引起的问题?
amazon-web-services::us-east-1
,那里是Heroku托管的地方。 - spickermann