乘客问题

时间:2011-03-23 16:39:17

标签: ruby-on-rails passenger

最近我们的ruby on rails应用程序升级到2.3.8。我们还在升级期间用Phusion Passenger取代了Mongrel / Mongrel集群。

每当我们尝试部署我们的应用程序时,它似乎最初响应更快,但响应时间逐渐增加。我们还注意到数据库盒上的cpu使用率达到400%,并且许多请求在全局队列中等待。这似乎只发生在我们的生产环境中。

任何人都可以让我知道如何调试此问题吗?

我们是否可以限制乘客和DB之间的连接数量?

还有一种方法可以在乘客中设置连接池吗?

谢谢,
西瓦库玛。

1 个答案:

答案 0 :(得分:1)

我认为问题不在于乘客。如果你的数据库盒CPU有一个大的峰值,你的问题可能就在那里。如果没有关于您的数据库的更多信息,很难给出具体细节,但您可以尝试以下几点:

  1. 运行top并检查mysqld或其他数据库进程消耗的总内存量。如果此数量不高,那么您可能需要调整MySQL设置以利用数据库盒上的RAM。
  2. 使用mytop命令分析正在运行的数据库查询。您可能会遇到一些占用所有系统资源或导致大量交换的查询。
  3. 查看MySQL慢速日志,查看是否有超过1秒的查询运行。
  4. 检查数据库引擎。你在使用MYISAM和/或InnoDB吗?您可能需要以不同方式调整数据库,以便为每个引擎分配适当的内存和资源。
  5. 咨询DBA。他们将能够查看您的使用情况和应用程序,并在问题出现在您的数据库或应用程序时更明确地告诉您。
  6. P.S:我建议升级到Passenger 3,它的性能优于Passenter 2.