我在Rackspace服务器上使用rails运行ruby 1.9.3。 Ruby有12个进程,占据了我服务器CPU的99.3%。是否有任何配置文件或选项来限制它占用的进程数和CPU数,或者只是让它一般使用更少的CPU?我应该如何开始解决这个问题。
更新:我正在使用apache的乘客
答案 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"