Performance Profiling
Collect perf data of a ceph process at runtime¶
Warn
This is an advanced topic please be aware of the steps you're performing or reach out to the experts for further guidance.
There are some cases where the debug logs are not sufficient to investigate issues like high CPU utilization of a Ceph process. In that situation, coredump and perf information of a Ceph process is useful to be collected which can be shared with the Ceph team in an issue.
To collect this information, please follow these steps:
- Edit the rook-ceph-operator deployment and set
ROOK_HOSTPATH_REQUIRES_PRIVILEGED
totrue
. - Wait for the pods to get reinitialized:
- Enter the respective pod of the Ceph process which needs to be investigated. For example:
-
Install
gdb
,perf
andgit
inside the pod. For example: -
Capture perf data of the respective Ceph process:
- Grab the
pid
of the respective Ceph process to collect its backtrace at multiple time instances, attachgdb
to it and share the outputgdb.txt
:
- Grab the live coredump of the respective process using
gcore
:
- Capture the Wallclock Profiler data for the respective Ceph process and share the output
gdbpmp.data
generated:
- Collect the
perf.data
,perf_report
, backtrace of the processgdb.txt
,core
file and profiler datagdbpmp.data
and upload it to the tracker issue for troubleshooting purposes.