IBM Support

FAQ - Why Java performance utilities like jps no longer work in DSE 5.0+

Troubleshooting


Problem

Overview

This article provides information on why Java performance statistics are no longer available on DataStax Enterprise nodes.

Background

The Java virtual machine (JVM) collects and logs performance statistics which are used for monitoring and tuning activities. The performance data get collected and written to /tmp/hsperfdata on a node. Command-line utilities bundled with Java such as jps and jstat read this data to report a JVM's performance.

If there is no data or the utility does not have read permissions, information about the JVM is not available to report.

Cause

For Apache Cassandra 2.2 and later, performance statistics data collection has been disabled for the JVM (CASSANDRA-9242) in the cassandra-env.sh:

JVM_OPTS="$JVM_OPTS -XX:+PerfDisableSharedMem"

This is the default for DSE 5.0 and later (Apache Cassandra 3.0+).

This was done as a result of the discovery that when the JVM saves the data to a memory-mapped file on /tmp/hsperfdata, the operation is synchronous and gets blocked until the IO completes. The JVM is paused during this time, sometimes for hundreds of milliseconds significantly impacting GC performance.

This is discussed in an often-cited blog post from Evan Jones, "The Four Month Bug: JVM statistics cause garbage collection pauses". Disabling performance statistics collection ironically improves the performance of the JVM.

Next steps

Enable performance data collection on nodes only when actively monitoring performance by commenting out the following line in cassandra-env.sh:

JVM_OPTS="$JVM_OPTS -XX:+PerfDisableSharedMem"

Note that this will require a restart of DSE to take effect. It is recommended to disable it again when no longer actively monitoring the JVM's performance.

See also

Support KB - Java utilities such as jps or jstat unable to monitor DSE processes


------
Last Reviewed Date: December 21, 2023

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB76","label":"Data Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCR56","label":"IBM DataStax Enterprise"},"ARM Category":[{"code":"","label":""}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"}]

Historical Number

ka0Ui0000000Mq9IAE

Document Information

Modified date:
30 January 2026

UID

ibm17258628