2

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

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

4

2 回答 2

3

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

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

worker_processes 10

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

http {
    ...
    passenger_max_pool_size 10;
}

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

PassengerMaxPoolSize 10

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

于 2013-02-04T18:38:25.280 回答
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"

于 2013-02-04T22:29:58.300 回答