Question regarding jemalloc and JVM
Jason Evans
jasone at canonware.com
Sat Mar 24 21:00:17 PDT 2012
On Mar 24, 2012, at 11:46 AM, Jason Evans wrote:
> On Mar 23, 2012, at 4:21 PM, Vijay wrote:
>> Is there any reason i should not be using LD_PRELOAD to force JVM use jemalloc instead of native gcc malloc?
>> Background: This is for Apache-Cassandra we do off-heap cache where we explicitly call malloc and free and by using jemalloc we see a fair amount of space savings and was wondering if there is anything which we have to consider before using it.
>
> LD_PRELOAD'ing jemalloc should be okay as long as the JVM doesn't statically link a different malloc implementation. I expect that if it isn't safe, you'll experience crashes quite early on, so give it a try and see what happens.
I was just looking through some of my notes and noticed an issue that may be relevant here. jemalloc has a configure option called lazy-lock that has apparently caused problems in some Java use cases. Java was using dlopen() to load a library that was dynamically linked with jemalloc, so jemalloc came along too late to intercept pthread_create() calls and turn on locking. I don't think your use case will hit the same issue, but beware of dlopen() anywhere in the mix.
Jason
More information about the jemalloc-discuss
mailing list