我运行一个 Rails 应用程序/网站(Rails v.3.0.3),每天有大约 10.000 次浏览量,但有时,当 Digg.com 或类似链接到它时,我会获得 2 或 3 倍的流量。发生这种情况时,我倾向于在 Heroku 上的 postgres 数据库出现问题,并且我收到一条错误消息(通过 exception_notification),如下所示:
ActiveRecord::StatementInvalid 发生在 home#index:
PG::Error: 错误:当前事务被中止,在事务块结束之前忽略命令:SELECT "c_types".* FROM "c_types"
.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.20/lib /active_record/connection_adapters/postgresql_adapter.rb:518:in `exec'
此错误消息永远不会发生,但是当我看到它时,通常是当我有异常的流量时。这使我相信数据库连接“过热”。这是我的第一个 Rails 应用程序,它确实没有针对数据库请求进行适当的优化,所以看起来很有可能。
我的问题:
有人可以确认这与“同时有太多数据库连接”有关吗?
除了尝试限制数据库调用的数量之外,我还能做些什么呢?
提前致谢。