Limites

Il pourrait être remarquablement facile de bloquer un système en étant trop gourmand dans l’utilisation de perf, par exemple en lui demandant de suivre chaque cycle CPU, chaque changement de contexte (basculement d’une tâche à une autre) ou chaque interruption matérielle.

Pour éviter ça, perf s’impose de rester sous certaines limites d’utilisation des ressources système, quitte à jeter des données de mesure si ces limites sont dépassées.

Comme le réglage perf_event_paranoid, ces limites sont exposées sous forme de paramètres sysctl, et peuvent être configurées ponctuellement via la commande sysctl ou de façon permanente via le répertoire /etc/sysctl.d.

Les limites que l’on a le plus de chance d’être amené à ajuster sont…

  • perf_event_max_sample_rate, qui contrôle la fréquence d’échantillonnage maximale utilisable avec perf record.
  • perf_cpu_time_max_percent, qui contrôle le pourcentage maximal du temps CPU qui peut être employé à traiter des mesures perf.

Bien entendu, je ne peux que suggérer de les modifier avec prudence et parcimonie.