Today, we are trying flamegraph on my local system. A simple walk through using his great software. Okay, in one of his slide, he gave a few commands and I modified a bit from his original version. Remember I ran these command on my debian box.
git clone --depth 1 https://github.com/brendangregg/FlameGraph
cd FlameGraph
perf record -F 99 -a -g -- sleep 30
perf script| ./stackcollapse-perf.pl | ./flamegraph.pl > perf.svg
and in the terminal, output below.
As you can see above, you need perf to be installed. perf is provided by this package, linux-tools-4.0 and you need root permission to run perf command. It will take a few seconds to collect the statistics and then you can again using the script to generate the svg. Now, you should be able to view the svg file using eof or gimp. See below for the flame graph generated in my workstation. :) Note, I have to change svg to jpg to upload to this blogger.
user@localhost:~$ git clone --depth 1 https://github.com/brendangregg/FlameGraph
Cloning into 'FlameGraph'...
remote: Counting objects: 50, done.
remote: Compressing objects: 100% (29/29), done.
remote: Total 50 (delta 24), reused 37 (delta 20), pack-reused 0
Unpacking objects: 100% (50/50), done.
Checking connectivity... done.
user@localhost:~$ cd FlameGraph
user@localhost:~/FlameGraph$ sudo perf record -F 99 -a -g -- sleep 30
/usr/bin/perf: line 24: exec: perf_4.0: not found
E: linux-tools-4.0 is not installed.
user@localhost:~/FlameGraph$ sudo perf record -F 99 -a -g -- sleep 30
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 1.719 MB perf.data (5082 samples) ]
user@localhost:~/FlameGraph$ perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > perf.svg
failed to open perf.data: Permission denied
ERROR: No stack counts found
user@localhost:~/FlameGraph$ sudo perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > perf.svg
Failed to open /tmp/perf-3763.map, continuing without symbols
Failed to open /tmp/perf-4908.map, continuing without symbols
Failed to open /usr/lib/i386-linux-gnu/libQtCore.so.4.8.6, continuing without symbols
Failed to open /lib/i386-linux-gnu/libglib-2.0.so.0.4200.1, continuing without symbols
Failed to open /tmp/perf-5995.map, continuing without symbols
Failed to open /tmp/perf-2337.map, continuing without symbols
Failed to open /tmp/perf-3012.map, continuing without symbols
no symbols found in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so, maybe install a debug package?
Failed to open /usr/lib/i386-linux-gnu/libQtGui.so.4.8.6, continuing without symbols
Failed to open /tmp/perf-19187.map, continuing without symbols
no symbols found in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstmatroska.so, maybe install a debug package?
no symbols found in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so, maybe install a debug package?
Failed to open /run/user/1000/orcexec.Sg4yUn, continuing without symbols
no symbols found in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstfaad.so, maybe install a debug package?
Failed to open /usr/bin/skype, continuing without symbols
no symbols found in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so, maybe install a debug package?
user@localhost:~/FlameGraph$
As you can see above, you need perf to be installed. perf is provided by this package, linux-tools-4.0 and you need root permission to run perf command. It will take a few seconds to collect the statistics and then you can again using the script to generate the svg. Now, you should be able to view the svg file using eof or gimp. See below for the flame graph generated in my workstation. :) Note, I have to change svg to jpg to upload to this blogger.