ユーザースペースツールをsysadmin(root)として実行する必要がありますかperf
、それとも通常のユーザーとしてこのツール(または少なくともいくつかのサブコマンド)を実行できますか?
答え1
ルートなしでできることはperf
次のように異なります。kernel.perf_event_paranoid
システム制御設定。
kernel.perf_event_paranoid
= 2:測定を実行できません。このユーティリティは、perf
またはを使用して既存のレコードを分析するのにまだ役立ちます。perf ls
perf report
perf timechart
perf trace
kernel.perf_event_paranoid
perf stat
= 1:またはTraceコマンドを使用してperf record
カーネルプロファイリングデータを取得できます。kernel.perf_event_paranoid
= 0:perf stat
コマンドを使用または追跡し、perf record
CPUイベントデータを取得できます。kernel.perf_event_paranoid
= -1:カーネルトラッキングポイントへのrawアクセスを取得できます(特に、次のようにすることmmap
ができます)。perf_event_open
、どういう意味なのかわかりません)。
答え2
perfがRHEL8でイベントを記録できるようにするために必要な手順は次のとおりです。
sudo mount -o remount,mode=755 /sys/kernel/tracing/
sudo sh -c 'echo -1 >/proc/sys/kernel/perf_event_paranoid'
sudo sh -c 'echo 0 >/proc/sys/kernel/kptr_restrict'
その後、通常のユーザーとしてperfを実行できます。
~$ perf record -e block:block_rq_complete -ag sleep 5
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.045 MB perf data ]