Guide de démarrage rapide : découvrir Profiler

Cette page vous explique comment configurer et utiliser Cloud Profiler. Pour ce faire, vous devez télécharger un exemple de programme Go, l'exécuter avec le profilage activé, puis analyser les données collectées à l'aide de l'interface Profiler.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Pour activer l'API Cloud Profiler pour votre projet, dans le volet de navigation de Google Cloud Console, cliquez sur Profiler ou sur le bouton suivant :

    Accéder à Profiler

  4. Pour ouvrir Cloud Shell, cliquez sur Activer Cloud Shell dans la barre d'outils de Google Cloud Console :

    Activer Cloud Shell

    Après quelques instants, une session Cloud Shell s'ouvre dans Google Cloud Console :

    Session Cloud Shell

Obtenir un programme à profiler

L'exemple de programme main.go se trouve dans le dépôt golang-samples sur GitHub. Pour l'obtenir, récupérez le package d'exemples Go :

go get -u github.com/GoogleCloudPlatform/golang-samples/profiler/...

La récupération du package prend quelques instants.

Profiler le code

Dans le package récupéré, accédez au répertoire des exemples de code pour Profiler :

cd ~/gopath/src/github.com/GoogleCloudPlatform/golang-samples/profiler/profiler_quickstart

Lorsque le programme main.go fournit des données au profileur, il crée une charge de travail intensive pour le processeur. Lancez ce programme et laissez-le s'exécuter :

 go run main.go

Ce programme est conçu pour charger le processeur lors de son exécution. Il est configuré pour utiliser Profiler, qui collecte les données de profilage du programme en cours d'exécution et les enregistre périodiquement.

Le message profiler has started s'affiche quelques secondes après le démarrage du programme. Au bout d'une minute environ, les deux autres messages suivants s'affichent :

 successfully created profile CPU
 start uploading profile

Ces messages vous informent qu'un profil a été créé et importé dans votre projet Cloud Storage. Le programme continue d'émettre les deux derniers messages, à environ une minute d'intervalle, et ce, pendant toute sa durée d'exécution.

Si vous recevez un message d'erreur d'autorisation refusée après le démarrage du service, consultez la page Pourquoi une erreur d'autorisation refusée s'affiche-t-elle ? afin de connaître les causes possibles.

Interface de Profiler

Quelques instants après le démarrage de l'application, Profiler affiche les données de profil initiales. L'interface offre un ensemble de commandes et un graphique de type "flamme" permettant d'explorer les données de profilage :

Interface de Profiler avec l'exemple de code

Sous les commandes de durée, vous trouverez des options permettant de sélectionner l'ensemble de données de profil à explorer. Lorsque vous profilez plusieurs applications, l'option Service vous permet de sélectionner l'origine des données profilées. L'option Profile Type (Type de profil) vous permet de sélectionner le type de données de profil à afficher. Les options Nom de zone et Version sont destinées à limiter l'affichage aux données des zones Compute Engine ou des versions de l'application. L'option Weight (Pondération) vous permet de sélectionner les profils recueillis au cours des pics de consommation des ressources.

Les filtres vous aident à affiner l'affichage des profils que vous avez sélectionnés pour l'analyse dans le graphique de type "flamme". Dans la capture d'écran précédente, la barre de filtre affiche un filtre. Cette option de filtre est Metric et la valeur du filtre est CPU time.

Explorer les données

Les piles d'appels du programme figurent dans un graphique de type "flamme" sous les commandes de sélection. Le graphique de type "flamme" représente chaque fonction avec un cadre. La largeur du cadre correspond à la proportion des ressources consommées par cette fonction. Le cadre du haut représente l'ensemble du programme. Il indique toujours 100 % de la consommation de ressources, ainsi que le nombre de profils utilisés pour calculer la consommation moyenne dans ce graphique.

L'exemple de programme ne présente pas un ensemble complexe de piles d'appels. Dans la capture d'écran précédente, vous pouvez voir cinq cadres :

  • Le cadre gris représente l'intégralité de l'exécutable, soit 100 % des ressources consommées.
  • Le cadre main vert correspond à la routine Go runtime.main.
  • Le cadre main orange correspond à la routine main de l'exemple de programme.
  • Le cadre busyloop orange correspond à une routine appelée à partir de la fonction main de l'exemple.
  • Le cadre main.load orange correspond à une routine appelée à partir de la fonction main de l'exemple.

Le sélecteur de filtre vous permet entre autres de filtrer les fonctions correspondant à un nom. Par exemple, s'il existe une bibliothèque standard de fonctions utilitaires, vous pouvez les supprimer du graphique. Vous pouvez également supprimer les piles d'appels provenant d'une certaine méthode ou simplifier le graphique de différentes manières. Comme l'application main.go est simple, il n'y a pas grand-chose à filtrer.

Même pour une application simple, les filtres vous permettent de masquer les cadres qui ne vous intéressent pas afin de n'afficher que ceux qui peuvent vous être utiles. Par exemple, dans la capture d'écran du profilage de l'exemple de code, le cadre gris est légèrement plus grand que le premier cadre main situé en dessous. Pourquoi ? Se produit-il autre chose que l'on ne parvient pas à voir immédiatement parce que la pile d'appel de main consomme un pourcentage élevé de ressources ? Pour afficher ce qui se passe en dehors de la routine main de l'application, ajoutez un filtre masquant la pile d'appels de la routine main. Seulement 0,227 % des ressources sont consommées en dehors de main :

Masquer les piles dans l'exemple de programme

Pour en savoir plus sur le filtrage et les autres moyens d'explorer les données de profilage, consultez la page Utiliser l'interface de Profiler.

Étapes suivantes

Besoin d'informations plus générales ?

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