26.2. Collecte de données spécifiques pour surveiller les goulets d'étranglement au niveau des performances à l'aide des tampons circulaires de perf
L'outil perf
vous permet de créer des tampons circulaires déclenchés par des événements que vous spécifiez afin de ne collecter que les données qui vous intéressent. Pour créer des tampons circulaires qui collectent des données spécifiques à un événement, utilisez les options --overwrite
et --switch-output-event
pour perf
.
Conditions préalables
-
L'outil de l'espace utilisateur
perf
est installé comme décrit dans la section Installation de perf. Vous avez placé une sonde ascendante dans le processus ou l'application que vous souhaitez surveiller, à un endroit qui vous intéresse dans le processus ou l'application :
# perf probe -x /path/to/executable -a function Added new event: probe_executable:function (on function in /path/to/executable) You can now use it in all perf tools, such as: perf record -e probe_executable:function -aR sleep 1
Procédure
Créez la mémoire tampon circulaire avec la sonde ascendante comme événement déclencheur :
# perf record --overwrite -e cycles --switch-output-event probe_executable:function ./executable [ perf record: dump data: Woken up 1 times ] [ perf record: Dump perf.data.2021021012231959 ] [ perf record: dump data: Woken up 1 times ] [ perf record: Dump perf.data.2021021012232008 ] ^C[ perf record: dump data: Woken up 1 times ] [ perf record: Dump perf.data.2021021012232082 ] [ perf record: Captured and wrote 5.621 MB perf.data.<timestamp> ]
Cet exemple lance l'exécutable et collecte les cycles du processeur, spécifiés après l'option
-e
, jusqu'à ce queperf
détecte l'uprobe, l'événement déclencheur spécifié après l'option--switch-output-event
. À ce moment-là,perf
prend un instantané de toutes les données du tampon circulaire et le stocke dans un fichier uniqueperf.data
identifié par l'horodatage. Cet exemple a produit un total de 2 instantanés, le dernier fichierperf.data
a été forcé en appuyant sur Ctrl c.