Ruby占用了99.3%的CPU

时间:2013-02-04 17:37:03

标签: ruby-on-rails ruby ubuntu cpu rackspace-cloud

我在Rackspace服务器上使用rails运行ruby 1.9.3。 Ruby有12个进程,占据了我服务器CPU的99.3%。是否有任何配置文件或选项来限制它占用的进程数和CPU数,或者只是让它一般使用更少的CPU?我应该如何开始解决这个问题。

更新:我正在使用apache的乘客

2 个答案:

答案 0 :(得分:2)

您是否正在运行应用程序服务器? Passenger,Unicorn和其他流行的ruby应用服务器都允许您配置最大工作进程数。例如,如果您想将应用服务器工作人员限制为10(与您看到的12相比):

对于unicorn.rb配置文件中的独角兽,请设置:

worker_processes 10

对于nginx下的Passenger,在您的配置集中:

http {
    ...
    passenger_max_pool_size 10;
}

对于Apache下的Passenger,在您的Passenger / apache配置中:

PassengerMaxPoolSize 10

如果这不能解答您的问题,请告诉我们您正在运行的应用服务器或ruby基础架构。

答案 1 :(得分:1)

我发现了这个问题! New Relic和Resque工作人员有一个错误(https://github.com/defunkt/resque/issues/578)。我正在使用New Relic Beta gem来解决这个问题。我将gem 'newrelic_rpm'替换为gem 'newrelic_rpm', "~> 3.5.6.48.beta"