我在 Rackspace 服务器上运行带有 rails 的 ruby 1.9.3。Ruby 有 12 个进程,占用了我服务器 CPU 的 99.3%。是否有任何配置文件或选项可以限制进程数和占用的 CPU 数量,或者只是使其通常使用更少的 CPU?我应该如何开始解决这个问题。
更新:我正在使用带有 apache 的乘客
我在 Rackspace 服务器上运行带有 rails 的 ruby 1.9.3。Ruby 有 12 个进程,占用了我服务器 CPU 的 99.3%。是否有任何配置文件或选项可以限制进程数和占用的 CPU 数量,或者只是使其通常使用更少的 CPU?我应该如何开始解决这个问题。
更新:我正在使用带有 apache 的乘客
您正在运行应用程序服务器吗?乘客、独角兽和其他流行的 ruby 应用程序服务器都允许您配置最大工作进程数。例如,如果您想将应用服务器工作人员的上限限制为 10(与您看到的 12 相比):
对于 unicorn.rb 配置文件中的独角兽,设置:
worker_processes 10
对于 nginx 下的乘客,在您的配置集中:
http {
...
passenger_max_pool_size 10;
}
对于Apache下的Passenger,在Passenger/apache配置中:
PassengerMaxPoolSize 10
如果这不能回答您的问题,请告诉我们您正在运行什么应用程序服务器或 ruby 基础架构。
我发现了问题!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"