New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable Puma's nakayoshi_fork feature #11121
Conversation
Hi! If you deploy this, could you please share the stats? |
@krzysiek1507 absolutely. If folks feel like this is worth attempting a deploy, I think the immediate change in memory would 10000% be worth publishing. 😄 |
That'd be great! :D Have you considered https://fullstaqruby.org/? |
@krzysiek1507 that is very interesting.... And we'll definitely be looking more and more at this sort of stuff, as we want to ensure the cost-effectiveness of the Forem network. Most of our choices have been DEV-centric, and while we certainly cared about efficiency, it will be exciting to explore solutions now that resource management is much more central to our concerns. .... So no, haven't really explored fullstaq in detail, but I think we'll be paying much more attention to innovations in this space going forward. I'd think @citizen428 has been paying closest attention to this stuff from our team. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally and works well, why not give it a shot! 🚀
Seems like Puma 5 had added a similar experimental feature in its release in cluster mode, they are also inviting people to contribute data:
from https://www.speedshop.co/2020/09/17/we-made-puma-faster-with-sleep-sort.html Maybe it's worth testing |
@rhymes Good call. I've experimented with the old gem, but this being the more straightforward use of I took some "before" screenshots. |
@benhalpern Hm, I could have sworn I added this/recommend adding this way before I even joined the team... 😕 Anyway, 👍 from me. @krzysiek1507 I've been following Fullstaq Ruby a bit. To me this seems like REE (Ruby Enterprise Edition) revamped, which I used way back in the day before that went EOL. It's certainly interesting, but we already use jemalloc, which means the only other things this offers is the |
@citizen428 We did go on this recommendation, but it didn't change much so we pulled it out to follow up with other experiments in the future. However, this was pre Ruby 2.7 when it was a gem and not something built into Puma with a couple lines of code, and a very different time in the project in terms of what the app does and how we configure it, so I suspect a better analysis. So yeah, we followed the recommendation, but didn't really see much of a difference, so went with the the choice of being closer to defaults/conventions (all else equal).... Here's hoping this time we see more of an impact. |
Watching this to hear any impact you see from
as far as I remember, malloc_trim performs about as well as jemalloc. |
Thanks @benhalpern, that clears it up, let's hope we see bigger improvements this time then. |
What type of PR is this? (check all applicable)
Description
Here are a few posts about
GC.compact
in Rails....My thoughts here are that if tests pass, this is something we could deploy and observe. There may be more ways we could use this in specific cases.