]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc/dev/perf: a few notes on perf and flame graphs 12168/head
authorSage Weil <sage@redhat.com>
Wed, 23 Nov 2016 22:05:37 +0000 (17:05 -0500)
committerSage Weil <sage@redhat.com>
Wed, 23 Nov 2016 22:05:37 +0000 (17:05 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
doc/dev/perf.rst [new file with mode: 0644]

diff --git a/doc/dev/perf.rst b/doc/dev/perf.rst
new file mode 100644 (file)
index 0000000..6fc7d7e
--- /dev/null
@@ -0,0 +1,39 @@
+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
+
+To view by callee (where you can see who calls each each top function)::  
+
+  sudo perf report --call-graph callee
+
+:note: If the the caller/callee views look the same you may be
+       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