这可能也属于serverfault。这是一种服务器配置和代码(我认为)之间的组合的Tomcat上的Jruby Rails应用程序CPU使用率峰值
这里是我的设置:
Rails 2.3.5 app running on jruby 1.3.1
Service Oriented backend over JMS with activeMQ 5.3 and mule 2.2.1
Tomcat 5.5 with opts: "-Xmx1536m -Xms256m -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled"
Java jdk 1.5.0_19
Debian Etch 4.0
运行top
,每次我点击我的网站的链接,我看到我的java
进程的CPU使用率峰值。如果它是一个小页面,有时只有10%的使用率,但有时在一个更复杂的页面上,我的CPU高达44%(从未超过,不知道为什么)。在这种情况下,请求可能会花费几分钟,而我的服务器的load average
稳步攀升至8或更高。这只是点击一个链接,从一些服务加载一些请求,没有太复杂。 java进程内存大部分时间徘徊在20%左右。
如果我离开它一点,平均负载回落到没有。点击几个链接,爬回去。
我正在为rails前端运行一个小型amazon实例,并为所有服务运行一个大型实例。
现在,这显然是不可接受的。一个用户可以将负载平均值增加到8,并且有两个人使用它,它会保持我们使用站点期间的平均负载。我想知道我能做什么来检查发生了什么?我完全丧失了如何进行调试。 (它不会在本地发生,当我通过jruby运行rails应用程序时,不在tomcat容器中)
有人能告诉我如何检查我的jruby应用程序,以了解它可能如何使用up如此巨大的资源?
请注意,我之前注意到了这一点,似乎是随机的,但是现在,从Rails 2.2.2升级到2.3.5后,我看到了这一切,并且使网站完全无法使用。
任何提示在哪里看,都非常感激。我甚至不知道从哪里开始。
感谢您的提示。我其实是前面的红宝石,所以我仍然在java/activemq上工作,但是当我有机会的时候我会看看 – brad 2010-03-01 14:24:00