43 votes

Exécutez perf sans droits root

Je cours debian testing avec le noyau 4.1 et la version 4.1 de l'outil perf. Dans cette version, ils semblent avoir ajouté une sorte de protection pour empêcher les utilisateurs normaux de collecter des données à partir de cet outil. Donc, exécuter perf en tant qu'utilisateur normal donnera cette erreur :

perf stat ls
Erreur:
Vous pourriez ne pas avoir la permission de collecter des statistiques.
Considérez ajuster /proc/sys/kernel/perf_event_paranoid:
 -1 - Pas du tout paranoïaque
  0 - Interdire l'accès brut aux points de trace pour les non privilégiés
  1 - Interdire les événements de CPU pour les non privilégiés
  2 - Interdire le profilage du noyau pour les non privilégiés

perf_event_paranoid contient 3 dans mon installation. Malheureusement, je ne peux pas modifier ce fichier même en tant que root. Comment puis-je autoriser mon propre utilisateur à utiliser perf sans droits sudo ?

J'ai une application que je voudrais benchmarker qui n'a pas besoin de droits root et je ne veux pas l'exécuter en tant que root pour la benchmarker.

65voto

meuh Points 5650

Les fichiers dans /proc qui sont inscriptibles sont généralement modifiés en écrivant une valeur dedans. Vous devriez essayer :

sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'

Les fichiers sous /proc/sys/ ont également la commande sysctl pour un accès facile, vous pouvez donc faire plutôt :

sudo sysctl -w kernel.perf_event_paranoid=1

(bien que le -w pour write semble être facultatif). Pour vous assurer que cela se fait au démarrage, créez votre propre fichier /etc/sysctl.d/99-mysettings.conf avec la ligne

kernel.perf_event_paranoid=1

Choisissez un nom de fichier qui ne remplacera pas les fichiers existants dans /run/sysctl.d/ et /usr/lib/sysctl.d/. Consultez man sysctl.d.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X