3 ms·
We once ran into a very similar issue, but using the old glibc allocator in bionic. For us the difference was between JVM versions/vendors. The arenas in glibc
by pwagland 3y ago
We once ran into a very similar issue, but using the old glibc allocator in bionic. For us the difference was between JVM versions/vendors. The arenas in glibc all allocated memory, based on what thread they are in. Because threads in Java are somewhat ubiquitous, then this caused massive "memory leaks", read allocated memory that wasn't being used, as every allocator was getting used, which caused them to all build up their buffers. This in turn caused a large increase in AWS bills, as we had to increase the memory allocated to avoid the OOMK.
We ended up moving to tcmalloc, mostly because the Debian packages worked the best for us. we did testing between the different malloc replacements, and honestly, there wasn't a huge difference between them for our workloads, although they _did_ have differences, with minor variations in peak/avg memory usage and CPU usage.