Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
Linux, cassandra 2.0.0
-
Low
Description
In conf/cassandra-env.sh I see this:
# Configure the following for JEMallocAllocator and if jemalloc is not available in the system # library path (Example: /usr/local/lib/). Usually "make install" will do the right thing. # export LD_LIBRARY_PATH=<JEMALLOC_HOME>/lib/ # JVM_OPTS="-Djava.library.path=<JEMALLOC_HOME>/lib/"
When I have enabled JEMalloc I have noticed that Cassandra complained about JAMM agent not being configured. Then I have realized that a bunch of JVM settings do not get passed to JVM, like heap size etc. This is because here the new argument replaces the previous value of JVM_OPTS instead of being added to it.
Here is the diff:
*** cassandra-env.sh.orig 2013-08-28 13:07:53.000000000 +0000 --- cassandra-env.sh 2013-09-11 13:25:12.904640141 +0000 *************** *** 227,233 **** # Configure the following for JEMallocAllocator and if jemalloc is not available in the system # library path (Example: /usr/local/lib/). Usually "make install" will do the right thing. # export LD_LIBRARY_PATH=<JEMALLOC_HOME>/lib/ ! # JVM_OPTS="-Djava.library.path=<JEMALLOC_HOME>/lib/" # uncomment to have Cassandra JVM listen for remote debuggers/profilers on port 1414 # JVM_OPTS="$JVM_OPTS -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1414" --- 227,233 ---- # Configure the following for JEMallocAllocator and if jemalloc is not available in the system # library path (Example: /usr/local/lib/). Usually "make install" will do the right thing. # export LD_LIBRARY_PATH=<JEMALLOC_HOME>/lib/ ! # JVM_OPTS="$JVM_OPTS -Djava.library.path=<JEMALLOC_HOME>/lib/" # uncomment to have Cassandra JVM listen for remote debuggers/profilers on port 1414 # JVM_OPTS="$JVM_OPTS -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1414"