Hi everyone! I’d like to propose adding the async-profiler library to the Cassandra project. This will enable us to add a new nodetool command to do profiling tasks on the process running Cassandra. This information can be useful to debug a wide range of potential issues and performance optimizations. CASSANDRA-20854 <https://issues.apache.org/jira/browse/CASSANDRA-20854> captures the effort and the details of the proposal, and this PR <https://github.com/apache/cassandra/pull/4487> proposes its implementation.
I want to note that this feature was already discussed in this <https://lists.apache.org/thread/98y59qp42zwwrtbcvnzvlh254c5vyhoq> thread, and this one only want to make sure that no one has any concerns about adding the library as a dependency. What is async-profiler? async-profiler <https://github.com/async-profiler/async-profiler> is a low overhead sampling profiler for Java that does not suffer from the Safepoint bias problem. It features HotSpot-specific API to collect stack traces and to track memory allocations. The profiler works with OpenJDK and other Java runtimes based on the HotSpot JVM. Unlike traditional Java profilers, async-profiler monitors non-Java threads (e.g., GC and JIT compiler threads) and shows native and kernel frames in stack traces. What can be profiled: CPU time Allocations in Java Heap Native memory allocations and leaks Contended locks Hardware and software performance counters like cache misses, page faults, context switches and more. We propose to add async-profiler 4.2 as a dependency to Cassandra. Any concerns? Bernardo
