3

我的服务器上安装了 Ruby 2.1.5,需要配置 GC 调整变量以获得最佳/最佳 Ruby 性能。

以下是硬件/软件信息信息:

  • 内存 - 7697604 KB (8GB)
  • CPU - Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz(2 核)
  • 红宝石 - 2.1.5
  • 导轨 - 3.2.18
  • 乘客 - 4.0.27

基于这个链接(http://tmm1.net/ruby21-rgengc/),我发现了大约 476K 长寿命对象(使用GC.stat(:heap_live_slot)),所以我分配了

RUBY_GC_HEAP_INIT_SLOTS=500000

但是其余的变量呢(如下所述)。这些变量的适当值应该是什么?我还应该在我的环境/服务器中分析什么(以及如何)来为这些变量找到合适的值?

RUBY_GC_HEAP_FREE_SLOTS=?
RUBY_GC_HEAP_GROWTH_FACTOR=?
RUBY_GC_HEAP_GROWTH_MAX_SLOTS=?
RUBY_GC_MALLOC_LIMIT=?
RUBY_GC_MALLOC_LIMIT_MAX=?
RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR=?
RUBY_GC_OLDMALLOC_LIMIT=?
RUBY_GC_OLDMALLOC_LIMIT_MAX=?
RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR=?
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=? 

如果需要任何其他信息,请告诉我!

4

1 回答 1

2

我如何分配这些值?

通过环境变量,例如:

RAILS_ENV=production RUBY_GC_MALLOC_LIMIT=90000000 bundle exec thin start
export RUBY_GC_MALLOC_LIMIT=90000000
...

(如果我误解了这个问题,而您实际上的意思是“我可以为这些值分配什么?”看看这里这里。)

于 2015-02-04T14:24:58.297 回答