Apache Cassandra™ 1.2

Configuring the heap dump directory

Analyzing the heap dump file can help troubleshoot memory problems.

Cassandra starts Java with the option -XX:-HeapDumpOnOutOfMemoryError. Using this option triggers a heap dump in the event of an out-of-memory condition. The heap dump file consists of references to objects that cause the heap to overflow. By default, Cassandra puts the file a subdirectory of the working, root directory when running as a service. If Cassandra does not have write permission to the root directory, the heap dump fails. If the root directory is too small to accommodate the heap dump, the server crashes.

For a heap dump to succeed and to prevent crashes, configure a heap dump directory that meets these requirements:

  • Accessible to Cassandra for writing
  • Large enough to accommodate a heap dump
This file is located in:
  • Packaged installs: /etc/dse/cassandra
  • Tarball installs: <install_location>/resources/cassandra/conf

Base the size of the directory on the value of the Java -mx option.

Procedure

  1. Open the cassandra-env.sh file for editing.
    # set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
  2. Scroll down to the comment about the heap dump path:
    # set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
  3. On the line after the comment, set the CASSANDRA_HEAPDUMP_DIR to the path you want to use:
    # set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR 
    CASSANDRA_HEAPDUMP_DIR =<path>
  4. Save the cassandra-env.sh file and restart.
Show/hide