1.6 KiB
Using the perf utility with LinuxKit
The perf utility is a standard Linux tool to access performance
counters, trace events and access various other kernel internals for
performance analysis.
The perf utility needs to matched be with the kernel. For recent
kernel build, LinuxKit provides a linuxkit/kernel-perf package with
a matching tag for each kernel under linuxkit/kernel.
There are a number of ways to use linuxkit/kernel-perf package:
- Add it to the
initsection. This adds/usr/bin/perfto the systems' root filesystem. From there it can be
- bind mounted into your container
- accessed via
/proc/1/root/usr/bin/perffrom with in thegettyorsshcontainer.
- Add it to you package. If you have a custom package already, you
can add
linuxkit/kernel-perfas another stage in your package and then copy/usr/bin/perfinto the final stage.
The first method is preferable since you need to match with the kernel
package tag and that is typically defined in the YAML file. I
typically don't add the bind mount since this requires further
modification and simply create a symlink in the ssh or getty container:
ln -s /proc/1/root/usr/bin/perf /usr/bin/perf
If you want to use perf you may also want to remove the sysctl
container, or alternatively, disable the kernel pointer restriction it
enables by default:
echo 0 > /proc/sys/kernel/kptr_restrict
Now, perf is ready to use. The LinuxKit perf package only contains
the perf binary, but excludes the detailed help messages or
additional scripts. If there is demand, we can add them to the
LinuxKit package.