From: dennisb55@... Date: 2018-05-19T02:55:34+00:00 Subject: [ruby-core:87186] [Ruby trunk Feature#14718] Use jemalloc by default? Issue #14718 has been updated by bluz71 (Dennis B). normalperson (Eric Wong) wrote: > Reading some glibc mailing list (libc-alpha) posts last year, > I remember excessive RSS usage is one of the areas they're > tackling due to user complaints. Interesting, do you have links? > I should also note the newish glibc 2.26 has the thread-caching > malloc as a build-time option, so it should reduce contention on > arenas and allow using fewer arenas. Also very interesting: - http://tukan.farm/2017/07/08/tcache/ - https://www.phoronix.com/scan.php?page=news_item&px=glibc-malloc-thread-cache This is enabled by default; though it will be years before it will be available in LTS releases. I wonder what the fragmentation characteristics will be? The arena count defaults haven't changed have they? (8 times core count for x64). > We also have regular contributions from Red Hat employees > to Ruby, so I think RH does care about Ruby to some degree; > and I don't think the allocation patterns for Ruby would be > too different from a lot of existing software. > > (I have no affiliation with Red Hat, past or present) Red Hat's prime focus will be their paying customers, which is the big end of town (quite rightly). Hence glibc changes tend to favour big-iron rather than Heroku-sized instances. Hopefully the `M_ARENA_MAX=2` change is a part of Ruby 2.6. Whilst GVL exists this change (for Linux only) will be a very big win with no negative consequences. Post Guild is another story. ---------------------------------------- Feature #14718: Use jemalloc by default? https://bugs.ruby-lang.org/issues/14718#change-72177 * Author: mperham (Mike Perham) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I know Sam opened #9113 4 years ago to suggest this but I'm revisiting the topic to see if there's any movement here for Ruby 2.6 or 2.7. I supply a major piece of Ruby infrastructure (Sidekiq) and I keep hearing over and over how Ruby is terrible with memory, a huge memory hog with their Rails apps. My users switch to jemalloc and a miracle occurs: their memory usage drops massively. Some data points: https://twitter.com/brandonhilkert/status/987400365627801601 https://twitter.com/d_jones/status/989866391787335680 https://github.com/mperham/sidekiq/issues/3824#issuecomment-383072469 Redis moved to jemalloc many years ago and it solved all of their memory issues too. Their conclusion: the glibc allocator "sucks really really hard". http://oldblog.antirez.com/post/everything-about-redis-24.html This is a real pain point for the entire Rails community and would improve Ruby's reputation immensely if we can solve this problem. -- https://bugs.ruby-lang.org/ Unsubscribe: