Le profileur de filetage est un outil de profilage à faible impact qui peut être utilisé en production pour identifier les goulots d'étranglement dans une application. Il fonctionne en capturant périodiquement (100 ms) la trace d'appels de chaque thread pendant une durée spécifiée. À la fin de la durée spécifiée, les traces d'appels sont agrégées pour construire un arbre. Le nombre d'appels dans l'arbre correspond au nombre de fois que la fonction était présente dans la trace d'appels sous le même contexte.
Bien que l’arbre d’appel ne puisse pas capturer l’intégralité de l’exécution, un échantillon suffisamment grand peut constituer une bonne représentation du comportement de l’application. Cela fournit des informations détaillées sur les fonctions « chaudes » de l'application où l'on passe la plupart du temps. Avec cette portée, les entrées échantillonnées à moins de 0,05 % sont omises.
Agents pris en charge
Cette fonctionnalité est disponible uniquement pour des agents et des versions spécifiques :
Java : versions d'agent 1.2.004.6 ou supérieures
.NET :
- infrastructure : versions d'agent 2.12.146.0 ou supérieures
- .NET Core 2.0 : versions d'agent 8.3.360.0 ou supérieures (Windows uniquement)
- Linux : .NET Core 3.0 ou supérieur et versions d'agent 8.23 ou supérieures
Python : versions d'agent 1.7.0 ou supérieures
Ruby : versions d'agent 3.5.5 ou supérieures
Démarrer le profileur
La fonctionnalité de profileur de thread est activée par défaut. Vous pouvez également l'activer ou le désactiver dans votre fichier de configuration d'agent :
- Java:
thread_profiler.enabled
- NET : Vous cannot désactivez le profileur de thread avec les applications .NET.
- Python:
thread_profiler.enabled
- Ruby:
thread_profiler.enabled
Lorsque cette option est activée, vous pouvez afficher le profileur de thread à partir de notre interface utilisateur :
- Allez à one.newrelic.com > All capabilities > APM & services > (select an app) > Events > Thread profiler.
- Sélectionnez l’hôte sur lequel vous souhaitez exécuter le profileur.
- Définissez la durée de la session de profilage.
- Sélectionnez Start profiler.
Cela déclenche l'agent pour démarrer le profileur de thread pendant le prochain cycle de collecte (toutes les minutes) et capturer les données pendant la durée spécifiée. Nous enregistrons les traces de threads, qu'ils soient ou non dans un état exécutable au moment du prélèvement de l'échantillon. Les threads en veille ou bloqués sur les E/S peuvent apparaître dans l'arborescence des appels.

one.newrelic.com > All capabilities > APM & services > (select an app) > Events > Thread profiler:Utilisez cette page pour définir les paramètres de durée du profileur de thread et pour afficher les résultats.
Afficher les données du profil
Une fois l’exécution du profileur terminée, l’agent signalera les données du profil. L'arbre des appels apparaît automatiquement sur la page Thread profiler . Les pourcentages dans l'arborescence des appels représentent le pourcentage d'échantillons de backtrace de thread dans lesquels chaque chemin d'appel est apparu pendant la session de profilage. La collecte des données a commencé au moment de la collecte du PROFIL.
La page code en couleur les résultats de l'arbre :
- Rouge : Pourcentages supérieurs à 30 %
- Jaune : Pourcentages supérieurs à 10 %
- Noir : Pourcentages inférieurs à 10 %
If you want to... | Do this... |
---|---|
Modifier l'apparence des informations du profil de thread | Sélectionnez vos choix parmi les options disponibles dans le Tree settings et sélectionnez Refresh tree. |
Modifier la quantité d'informations affichées | Sélectionnez les options Expand ou Collapse au-dessus de l’arborescence des appels, ou sélectionnez le nom ou la flèche sur n’importe quelle ligne de l’arborescence des appels. |
Afficher les informations récapitulatives sur n'importe quelle ligne de l'arborescence des appels | Passez la souris sur la ligne. |
Envoyer les résultats du profil du fil par courrier électronique à d'autres personnes | Sélectionnez Share this profile. |
Démarrer une autre session ou afficher un autre profil de fil de discussion | Sélectionnez Back to all profiles. |
Considérations relatives aux agents
Selon l’agent que vous utilisez, la fonctionnalité de profilage de thread comporte des considérations supplémentaires.