
我正在使用 4.1 核心和 4.1 版本的perf
工具執行 Debian 測試。在這個版本中,他們似乎添加了某種保護措施,以防止普通用戶從該工具收集資料。所以perf
以普通用戶運行會出現這樣的錯誤:
perf stat ls
Error:
You may not have permission to collect stats.
Consider tweaking /proc/sys/kernel/perf_event_paranoid:
-1 - Not paranoid at all
0 - Disallow raw tracepoint access for unpriv
1 - Disallow cpu events for unpriv
2 - Disallow kernel profiling for unpriv
perf_event_paranoid
我的安裝中包含 3 個。不幸的是,即使作為 root,我也無法更改該文件。如何允許我自己的使用者perf
在沒有 sudo 權限的情況下使用?
我有一個不需要 root 的應用程序,我想對其進行基準測試,並且我不想以 root 身份運行它來對其進行基準測試。
答案1
其中可寫入的檔案/proc
通常會透過將值回顯到其中來更改。你應該試試:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
下面的文件/proc/sys/
還有系統控制命令以方便訪問,因此您可以執行以下操作:
sudo sysctl -w kernel.perf_event_paranoid=1
(雖然-w
對於寫似乎是可選的)。為了確保在啟動時完成此操作,請/etc/sysctl.d/99-mysettings.conf
使用以下行建立您自己的文件
kernel.perf_event_paranoid=1
選擇不會覆蓋/run/sysctl.d/
和中現有檔案的檔案名稱/usr/lib/sysctl.d/
。看人sysctl.d。