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
...
(Если я неправильно понимаю вопрос, а вы на самом деле имеете в виду "Что я могу назначить эти значения?