Ruby 2.1.5 - GC tuning

У меня установлен Ruby 2.1.5 на моем сервере, и мне нужно настроить переменные настройки GC для лучшей / оптимальной производительности Ruby.

Ниже приведена информация об аппаратном / программном обеспечении:

  • Память - 7697604 КБ (8 ГБ)
  • Процессор - Intel(R) Xeon(R) CPU E5-2670 v2 при 2,50 ГГц (2 ядра)
  • Рубин - 2.1.5
  • Рельсы - 3.2.18
  • Пассажир - 4.0.27

Основываясь на этой ссылке ( http://tmm1.net/ruby21-rgengc/), я обнаружил около 476 тыс. Долгоживущих объектов (используя 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=? 

Если требуется какая-либо другая информация, дайте мне знать!

1 ответ

Как мне назначить эти значения?

Через переменные env, например:

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

(Если я неправильно понимаю вопрос, а вы на самом деле имеете в виду "Что я могу назначить эти значения?

Другие вопросы по тегам