ruby-on-rails - Ruby 2.1.5 - GC 调整

标签 ruby-on-rails performance garbage-collection garbage ruby-2.1

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

硬件/软件信息信息如下:

  • 内存 - 7697604 KB (8GB)
  • CPU - Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz(2 核)
  • ruby - 2.1.5
  • rails - 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=? 

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

最佳答案

How do I assign those values?

通过环境变量例如:

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

(如果我误解了这个问题,而您实际上是指“我可以为这些值分配什么?”Have a loook herehere。)

关于ruby-on-rails - Ruby 2.1.5 - GC 调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320250/

相关文章:

ruby-on-rails - Rails 2.3.5 : How does one access code inside of lib/directory/file. rb?

performance - Azure Servicebus 中继性能

c# - 当所有对象引用被删除时,异步方法会发生什么?

python - 如何释放 lxml.etree 使用的内存?

ruby-on-rails - 如何管理具有不同数据库模式的 git 分支?

ruby-on-rails - Rails fixtures——如何设置外键?

ruby-on-rails - SSH 和-bash : fork: Cannot allocate memory VPS Ubuntu

python - Mongodb _id 字段的排序描述非常慢

javascript - 显示多个元素时性能不佳

pointers - 为什么弱指针有用?