2016-11-23 22:05:37 +00:00
|
|
|
Using perf
|
|
|
|
==========
|
|
|
|
|
|
|
|
Top::
|
|
|
|
|
|
|
|
sudo perf top -p `pidof ceph-osd`
|
|
|
|
|
|
|
|
To capture some data with call graphs::
|
|
|
|
|
|
|
|
sudo perf record -p `pidof ceph-osd` -F 99 --call-graph dwarf -- sleep 60
|
|
|
|
|
|
|
|
To view by caller (where you can see what each top function calls)::
|
|
|
|
|
|
|
|
sudo perf report --call-graph caller
|
|
|
|
|
2016-12-05 11:10:08 +00:00
|
|
|
To view by callee (where you can see who calls each top function)::
|
2016-11-23 22:05:37 +00:00
|
|
|
|
|
|
|
sudo perf report --call-graph callee
|
|
|
|
|
2016-12-05 11:10:08 +00:00
|
|
|
:note: If the caller/callee views look the same you may be
|
2016-11-23 22:05:37 +00:00
|
|
|
suffering from a kernel bug; upgrade to 4.8 or later.
|
|
|
|
|
|
|
|
Flamegraphs
|
|
|
|
-----------
|
|
|
|
|
|
|
|
First, get things set up::
|
|
|
|
|
|
|
|
cd ~/src
|
|
|
|
git clone https://github.com/brendangregg/FlameGraph
|
|
|
|
|
|
|
|
Run ceph, then record some perf data::
|
|
|
|
|
|
|
|
sudo perf record -p `pidof ceph-osd` -F 99 --call-graph dwarf -- sleep 60
|
|
|
|
|
|
|
|
Then generate the flamegraph::
|
|
|
|
|
|
|
|
sudo perf script | ~/src/FlameGraph/stackcollapse-perf.pl > /tmp/folded
|
|
|
|
~/src/FlameGraph/flamegraph.pl /tmp/folded > /tmp/perf.svg
|
|
|
|
firefox /tmp/perf.svg
|