fullstaq-ruby / server-edition

A server-optimized Ruby distribution: less memory, faster, easy to install and security-patch via APT/YUM
https://fullstaqruby.org
MIT License
605 stars 30 forks source link

Re-consider jemalloc 5? #98

Open Envek opened 2 years ago

Envek commented 2 years ago

Currently Fullstaq Ruby is being compiled only against jemalloc 3 and docs state following in README here:

Only Jemalloc 3 yields reduced memory usage, Jemalloc 5 does not.

However, there are evidences that jemalloc 5 with changed settings can have the almost same behavior as jemalloc 3, e.g. see here: https://twitter.com/wgjordan/status/1440574986264006659

Jemalloc 5 has time-based purging, the default (10sec) favors perf over memory usage. Set dirty_decay_ms:0,muzzy_decay_ms:0 for 3.6-like behavior, I found dirty_decay_ms:1000,muzzy_decay_ms:0 a good balanced tradeoff. I ran jemalloc 5.1 + Ruby 2.5 since 2018.

Describe the solution you'd like So maybe it is time to give jemalloc 5 one more try?

Additional context Some additional discussion can be seen here (however it is not public): https://railsperf.slack.com/archives/C0QKHT5LP/p1651118694838959

jjb commented 1 year ago

I collected some info about jemalloc 5 here https://gist.github.com/jjb/9ff0d3f622c8bbe904fe7a82e35152fc