Hacker News new | ask | show | jobs
by jerhinesmith 4326 days ago
If you're on heroku (or similarly memory-constrained VPS), it's worth noting that 2.1+ can use significantly more memory.

I've been collecting bookmarks on how to properly tune the GC environment variables in these situations -- hopefully they'll help someone else:

Heroku discussion: https://discussion.heroku.com/t/tuning-rgengc-2-1-on-heroku/...

Using Out-of-band GC on 2.1: http://tmm1.net/ruby21-oobgc/

2 comments

Maybe this will help someone, as well...we've been trying to collect all of the different tuning and implementation information on the Ruby GC in one place:

https://www.omniref.com/ruby/2.1.2/symbols/GC#annotation=88&...

That's actually a huge help. What I've also been looking for (and haven't been able to find) is a good guide on How to Tune your GC settings. Aman Gupta has gotten the closest so far* (I think), but I'd really love a step-by-step of "OK, open your console, run `GC.start`, take note of this property because it means X and indicates that Y would be a good setting for Z, etc. etc"

* http://tmm1.net/ruby21-rgengc/

It would be interesting or useful to know more about it, but what I think is that ideally a right impementation of a GC should not require any tweeks from the outside... and I am pretty sure you are not going to get any signifcant performance boost by using different GC values than default.
I wish there was a "webapp" environment flag you could set that would tell Ruby to apply reasonable GC/memory settings for a larger / constantly running app.