Measuring performance with the perf kernel tool
On Fire
perf
can also even create pretty graphics. Thanks to flame graphs, admins and developers can determine the most frequently used software paths. The developer tools integrated into browsers can also generate graphics (Figure 3).
The x-axis shows the load of the individual processes; the y-axis the resolution of each function call. The wider the blocks, the more resources their processes require, which helps you see which areas are problematic are most in need of optimizing.
Admins can also generate flame graphs from perf
data. You do not have to write the script yourself – look for the script on GitHub [5]:
git clone https://github.com/brendangregg/FlameGraph
The commands from Listing 5 record the performance data and create a flame graph with perf script
(Figure 4). The flame graph shows that, although the browser is playing a 720p video, the kernel is pretty much in sleep mode. In the browser, individual sections of the flame graph can be zoomed in and out.
Listing 5
Commands for Creating a Flame Graph
01 sudo perf record -F 99 -a -g -- sleep 10 02 sudo perf script > out.perf 03 ./stackcollapse-perf.pl out.perf > out.folded 04 ./flamegraph.pl out.folded > out.svg 05 firefox out.svg

Dynamic Tracing
Using the perf
probe
subcommand and the --add
switch, admins can define dynamic trace points. Listing 6 shows the procedure using the Linux tcp_sendmsg()
function as an example.
Listing 6
tcp_sendmsg as Dynamic Trace Point
01 $ sudo perf probe --addd='tcp_sendmsg' 02 Added new event: 03 probe:tcp_sendmsg (on tcp_sendmsg) 04 [...] 05 $ sudo perf record -e probe:tcp_sendmsg -aR sleep 5 06 [ perf record: Woken up 1 times to write data ] 07 $ sudo perf report --stdio 08 [...]
Dynamic Duo
The Linux perf
subsystem and the perf
tool collection offer many possibilities for analyzing a system. Admins can easily collect and evaluate data with existing tools and scripts to achieve an overview. Correct interpretation of the data requires some knowledge of the perf
subsystem. Because the Linux kernel delivers perf
directly, you won't need to worry about installing external modules.
« Previous 1 2 3 4 Next »
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
News
-
Fedora 39 Beta is Now Available for Testing
For fans and users of Fedora Linux, the first beta of release 39 is now available, which is a minor upgrade but does include GNOME 45.
-
Fedora Linux 40 to Drop X11 for KDE Plasma
When Fedora 40 arrives in 2024, there will be a few big changes coming, especially for the KDE Plasma option.
-
Real-Time Ubuntu Available in AWS Marketplace
Anyone looking for a Linux distribution for real-time processing could do a whole lot worse than Real-Time Ubuntu.
-
KSMBD Finally Reaches a Stable State
For those who've been looking forward to the first release of KSMBD, after two years it's no longer considered experimental.
-
Nitrux 3.0.0 Has Been Released
The latest version of Nitrux brings plenty of innovation and fresh apps to the table.
-
Linux From Scratch 12.0 Now Available
If you're looking to roll your own Linux distribution, the latest version of Linux From Scratch is now available with plenty of updates.
-
Linux Kernel 6.5 Has Been Released
The newest Linux kernel, version 6.5, now includes initial support for two very exciting features.
-
UbuntuDDE 23.04 Now Available
A new version of the UbuntuDDE remix has finally arrived with all the updates from the Deepin desktop and everything that comes with the Ubuntu 23.04 base.
-
Star Labs Reveals a New Surface-Like Linux Tablet
If you've ever wanted a tablet that rivals the MS Surface, you're in luck as Star Labs has created such a device.
-
SUSE Going Private (Again)
The company behind SUSE Linux Enterprise, Rancher, and NeuVector recently announced that Marcel LUX III SARL (Marcel), its majority shareholder, intends to delist it from the Frankfurt Stock Exchange by way of a merger.