Prowadzę testy Debiana z jądrem 4.1 i wersją 4.1 perf
narzędzia. W tej wersji wydaje się, że dodali jakąś ochronę, aby powstrzymać zwykłych użytkowników przed gromadzeniem danych z tego narzędzia. Uruchomiony perf
jak zwykły użytkownik wyświetli ten błąd:
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
zawiera 3 w mojej instalacji. Niestety nie mogę zmienić tego pliku nawet jako root. Jak mogę pozwolić mojemu użytkownikowi na korzystanie perf
bez uprawnień sudo?
Mam aplikację, którą chciałbym przetestować, która nie wymaga rootowania i nie chcę jej uruchamiać jako root, aby ją przetestować.
perf stat -e cycles:u
działa Wartość „3”perf_event_paranoid
została dodana w 2016 r. Lwn.net/Articles/696216 „Disallowing perf_event_open ()” i została włączona w „Android i Debian” (także lkml.org/lkml/2016/1/11/587 bugs.launchpad. net / robaki / 1612790 debian.org/security/2017/dsa-3791 )Odpowiedzi:
Pliki,
/proc
które można zapisywać, są zwykle zmieniane przez echo wartości w nich. Powinieneś spróbować:Pliki poniżej
/proc/sys/
mają również polecenie sysctl dla łatwego dostępu, więc możesz zamiast tego:(choć
-w
dla zapisu wydaje się być opcja). Aby upewnić się, że jest to zrobione podczas uruchamiania, utwórz własny/etc/sysctl.d/99-mysettings.conf
plik z liniąWybierz nazwę pliku, która nie zastąpi istniejących plików w
/run/sysctl.d/
i/usr/lib/sysctl.d/
. Patrz man sysctl.d .źródło
sudo sh -c 'echo kernel.perf_event_paranoid=1 > /etc/sysctl.d/local.conf'