Customize GC behavior #2
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi @andrewhr, I'm an engineer at Code Climate and was looking into some
out-of-memory errors we see on this engine. I think I've got a fix here by way
of tuning the GC -- let me know what you think.
By default, the JVM does not free allocated heap back to the OS. This
configures away from that behavior, hopefully to prevent OOM engine
errors.
See http://www.stefankrause.net/wp/?p=14 for details on the specific
options chosen. Of all the examples in that post, this one performed the
best and brought my test repository's memory usage down from ~700MB to
~150MB. Its graph also shows most closely the pattern we'd prefer: the
slope of allocated heap closely matching used.