web-dev-qa-db-ja.com

ユーザースペースの「perf」ツールを実行するには、root(管理者)権限が必要ですか? (perfイベントはLinuxカーネルで有効になっています)

システム管理者(root)としてperf userspaceツールを実行する必要がありますか、それとも通常のユーザーとして実行できますか(または少なくともいくつかのサブコマンド)。

24
Jakub Narębski

Rootにならずにperfで何ができるかは、 kernel.perf_event_paranoidsysctl設定 によって異なります。

  • kernel.perf_event_paranoid = 2:測定はできません。 perfユーティリティは、perf lsperf reportperf timechartまたはperf traceを使用して既存のレコードを分析するのに役立つ場合があります。
  • kernel.perf_event_paranoid = 1:perf statまたはperf recordを使用してコマンドをトレースし、カーネルプロファイリングデータを取得できます。
  • kernel.perf_event_paranoid = 0:perf statまたはperf recordを使用してコマンドをトレースし、CPUイベントデータを取得できます。
  • kernel.perf_event_paranoid = -1:カーネルトレースポイントに直接アクセスできます(具体的には、 perf_event_open で作成されたファイルをmmapできますが、その影響はわかりません)。