Présentation de Cloud Profiler

Comme chacun le sait, analyser les performances des systèmes de production n'est pas facile. En général, les environnements de test ne permettent pas de reproduire les pressions exercées sur ce type de systèmes. Il est parfois possible de tester certaines petites parties de votre application, mais l'analyse comparative ne permet généralement pas de reproduire la charge de travail ni le comportement d'un système de production.

Le profilage continu des systèmes de production constitue un moyen efficace de déterminer les portions de code qui consomment des ressources, telles que les cycles de processeur et la mémoire, lorsqu'un service fonctionne dans son environnement de travail. Toutefois, le profilage constitue une charge en plus pour le système de production. Il ne sera donc utile pour découvrir les schémas de consommation de ressources que si la charge supplémentaire qu'il génère est faible.

Cloud Profiler est un profileur statistique peu gourmand en ressources, qui recueille en permanence des informations sur l'utilisation du processeur et l'allocation de mémoire de vos applications de production. Il attribue ces informations au code source qui les a générées, ce qui vous permet d'identifier les parties de votre application qui consomment le plus de ressources et de mettre en évidence les caractéristiques de performance de votre application.

Types de profilage disponibles

Cloud Profiler accepte différents types de profilage selon le langage de programmation utilisé. Vous trouverez le récapitulatif des types de profil compatibles pour chaque langage de programmation dans le tableau suivant :

Type de profil Go Java Node.js Python
Temps CPU OO O
Segment de mémoire OO O
Tas de mémoire alloué O
Contention O
Threads O
Durée d'exécution O OO

Pour en savoir plus sur les exigences en termes de langage et sur les éventuelles restrictions, consultez la page relative aux langages. Pour en savoir plus sur ces types de profil, consultez la page Concepts du profilage.

Configurations compatibles

Lorsque vous instrumentez votre application pour récupérer des données de profil, vous devez inclure un agent de profilage spécifique aux langages. Le tableau suivant récapitule les environnements compatibles :

Environnements Go Java Node.js Python
Compute Engine OOOO
Google Kubernetes Engine OOOO
Environnement flexible App Engine OOOO
Environnement standard App Engine OOOO
Dataproc O
Dataflow OO
En dehors de Google Cloud OOOO

Le tableau suivant récapitule les systèmes d'exploitation compatibles :

Systèmes d'exploitation Go Java Node.js Python
Mise en œuvre Linux
glibc de la bibliothèque standard C
OO OO
Mise en œuvre Linux
musl de la bibliothèque standard C
OO (version alpha) OO (version alpha)

Impact sur la performance

Cloud Profiler crée un profil unique en collectant des données de profilage. Cette collecte s'effectue généralement pendant 10 secondes et toutes les minutes pour une seule instance du service configuré dans une seule zone Compute Engine. Si, par exemple, votre service GKE exécute 10 instances dupliquées d'un pod, environ 10 profils seront créés en 10 minutes et chaque pod sera profilé environ une fois. Comme la période de profilage est aléatoire, le processus présente des variations. Pour en savoir plus, consultez la page Collecter des profils.

L'impact du profilage de l'allocation de processeurs et de segments de mémoire au moment de la collecte des données est inférieur à 5 %. Amorti sur le temps d'exécution et sur plusieurs instances dupliquées d'un service, cet impact est généralement inférieur à 0,5 %, ce qui en fait une option abordable pour le profilage continu des systèmes de production.

Composants

Cloud Profiler comprend un agent de profilage, qui collecte les données, et une interface de console sur Google Cloud, qui vous permet d'afficher et d'analyser les données recueillies par l'agent.

Agent de profilage

L'agent s'installe sur les machines virtuelles sur lesquelles votre application s'exécute. Il se présente généralement sous la forme d'une bibliothèque que vous rattachez à votre application lorsque vous l'exécutez. L'agent collecte alors les données de profilage pendant l'exécution de l'application.

Pour en savoir plus sur l'exécution de l'agent Cloud Profiler, consultez les pages suivantes :

Interface de Profiler

Une fois que l'agent a collecté les données de profilage, vous pouvez vous servir de l'interface de Profiler pour voir les corrélations entre les statistiques d'utilisation du processeur et de la mémoire et les zones de votre application.

Interface Cloud Profiler

Les données de profil sont conservées pendant 30 jours. Vous pouvez donc analyser la performance sur des périodes allant jusqu'à 30 jours. En outre, vous avez la possibilité de télécharger les profils pour un stockage à long terme.

Quotas et limites

Pour en savoir plus sur l'affichage et la gestion des quotas de Profiler, consultez la page Quotas et limites.

Sécurité des données

Cloud Profiler est un service compatible avec VPC Service Controls. Pour en savoir plus, consultez la documentation de VPC Service Controls.