Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce tutoriel, vous allez apprendre à identifier les goulots d’étranglement de performances dans une application web en utilisant Azure Load Testing. Vous simulez la charge pour un exemple d’application web Node.js, puis utilisez le tableau de bord de test de charge pour analyser les métriques côté client et côté serveur.
L’exemple d’application se compose d’une API web Node.js qui interagit avec une base de données NoSQL. Vous déployez l’API web pour Azure App Service Web Apps et utilisez Azure Cosmos DB comme base de données.
Dans ce tutoriel, vous allez apprendre à :
- Déployer l’exemple d’application.
- Créer et exécuter un test de charge.
- Ajoutez des composants d’application Azure au test de charge.
- Identifiez les goulots d’étranglement de performances à l’aide du tableau de bord de test de charge.
Conditions préalables
- Un compte Azure avec un abonnement actif. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Azure CLI installé sur votre ordinateur local.
- Azure CLI, version 2.2.0 ou ultérieure. Exécutez
az --versionpour rechercher la version installée sur votre ordinateur. Si vous devez installer ou mettre à niveau Azure CLI, consultez Installer Azure CLI 2.0. - Visual Studio Code. Si ce n’est déjà fait, téléchargez et installez-le.
- Git. Si ce n’est déjà fait, téléchargez et installez-le.
Vérification des prérequis
Avant de commencer, vérifiez votre environnement :
Connectez-vous au portail Azure et vérifiez que votre abonnement est actif.
Vérifiez votre version d’Azure CLI dans un terminal ou une fenêtre de commande en exécutant
az --version. Pour obtenir la version la plus récente, consultez les notes de publication les plus récentes.Si vous ne disposez pas de la dernière version, mettez à jour votre installation en suivant le guide d’installation pour votre système d’exploitation ou votre plateforme.
Déployer l’exemple d’application
Dans ce tutoriel, vous générez une charge sur un exemple d’application web que vous déployez sur Azure App Service. Utilisez des commandes Azure CLI, des commandes Git et des commandes PowerShell pour déployer l’exemple d’application dans votre abonnement Azure.
Ouvrez Windows PowerShell, connectez-vous à Azure, puis définissez l’abonnement :
az login az account set --subscription <your-Azure-Subscription-ID>Clonez le référentiel source de l’exemple d’application :
git clone https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck.gitL’exemple d’application est une application Node.js constituée d’un composant web Azure App Service et d’une base de données Azure Cosmos DB. Le référentiel contient un script PowerShell qui déploie l’exemple d’application sur votre abonnement Azure. Il comporte également un script Apache JMeter que vous utiliserez dans les étapes ultérieures.
Accédez au répertoire de l’application Node.js et déployez l’exemple d’application à l’aide de ce script PowerShell :
cd nodejs-appsvc-cosmosdb-bottleneck .\deploymentscript.ps1À l’invite, fournissez :
- Votre ID d’abonnement Azure.
- Un nom unique à votre application web.
- Un emplacement. Par défaut, l'emplacement est
eastus. Vous pouvez obtenir des codes de région en exécutant la commande Get-AzLocation.
Important
Pour le nom de votre application Web, utilisez uniquement des lettres minuscules et des chiffres. N’utilisez pas d’espaces ou de caractères spéciaux.
Une fois le déploiement terminé, accédez à l’exemple d’application en cours d’exécution en ouvrant
https://<yourappname>.azurewebsites.netdans une fenêtre de navigateur.
Maintenant que l’exemple d’application est déployé et en cours d’exécution, vous pouvez créer une ressource de test de charge Azure et un test de charge.
Créer un test de charge
Dans ce tutoriel, vous créez un test de charge avec Azure CLI en chargeant un script de test JMeter (fichier jmx). L’exemple de référentiel d’application contient déjà un fichier de configuration de test de charge et un script de test JMeter.
Pour créer un test de charge à l’aide du Portail Azure, suivez les étapes dans Démarrage rapide : créer un test de charge avec un script JMeter.
Suivez ces étapes pour créer une ressource de test de charge Azure et un test de charge à l’aide d’Azure CLI :
Ouvrez une fenêtre de terminal et entrez la commande suivante pour vous connecter à votre abonnement Azure.
az loginAccédez au répertoire de l’exemple d’application.
cd nodejs-appsvc-cosmosdb-bottleneckCréez un groupe de ressources pour la ressource de test de charge Azure.
Si vous le souhaitez, vous pouvez également réutiliser le groupe de ressources de l’exemple d’application que vous avez déployé précédemment.
Remplacez l’espace réservé au texte
<load-testing-resource-group-name>par le nom du groupe de ressources.resourceGroup="<load-testing-resource-group-name>" location="East US" az group create --name $resourceGroup --location $locationCréez une ressource de test de charge Azure avec la commande
az load create.Remplacez l’espace réservé au texte
<load-testing-resource-name>par le nom de la ressource de test de charge.# This script requires the following Azure CLI extensions: # - load loadTestResource="<load-testing-resource-name>" az load create --name $loadTestResource --resource-group $resourceGroup --location $locationCréez un test de charge pour simuler la charge sur votre exemple d’application avec la commande
az load test create.Remplacez l’espace réservé au texte
<web-app-hostname>par le nom d’hôte App Service de l’exemple d’application. Cette valeur se présente sous la formemyapp.azurewebsites.net. N’incluez pas la partiehttps://de l’URL.testId="sample-app-test" webappHostname="<web-app-hostname>" az load test create --test-id $testId --load-test-resource $loadTestResource --resource-group $resourceGroup --load-test-config-file SampleApp.yaml --env webapp=$webappHostnameCette commande utilise le fichier de configuration de test de charge
Sampleapp.yaml, qui fait référence au script de test JMeterSampleApp.jmx. Vous utilisez un paramètre de ligne de commande pour transmettre le nom d’hôte de l’exemple d’application au test de charge.
Vous disposez maintenant d’une ressource de test de charge Azure et d’un test de charge pour générer la charge par rapport à l’exemple d’application web dans votre abonnement Azure.
Ajouter des composants d’application Azure pour surveiller l’application
Azure Load Testing vous permet de surveiller les métriques de ressources pour les composants Azure de votre application. En analysant ces métriques côté serveur, vous pouvez identifier les problèmes de performances et de stabilité dans votre application directement à partir du tableau de bord Azure Load Testing.
Dans ce tutoriel, vous ajoutez les composants Azure pour l’exemple d’application que vous avez déployé sur Azure, comme le service d’application, le compte Cosmos DB, etc.
Pour ajouter les composants d’application Azure pour l’exemple d’application à votre test de charge :
Dans le portail Azure, accédez à votre ressource de test de charge Azure.
Dans le volet gauche, sélectionnez Tests pour afficher la liste des tests de charge
Cochez la case en regard de votre test de charge, puis sélectionnez Modifier.
Accédez à l’onglet Surveillance, puis sélectionnez Ajouter/Modifier.
Cochez les cases de l’exemple d’application que vous avez déployé précédemment, puis sélectionnez Appliquer.
Conseil / Astuce
Vous pouvez utiliser le filtre de groupe de ressources pour n’afficher que les ressources Azure dans l’exemple de groupe de ressources d’application.
Sélectionnez Appliquer pour enregistrer les modifications apportées à la configuration du test de charge.
Vous avez ajouté les composants d’application Azure pour l’exemple d’application à votre test de charge afin d’activer la surveillance des métriques côté serveur pendant l’exécution du test de charge.
Exécuter le test de charge
Vous pouvez maintenant exécuter le test de charge pour simuler la charge sur l’exemple d’application que vous avez déployé dans votre abonnement Azure. Dans ce tutoriel, vous exécutez le test de charge à partir du Portail Azure. Vous pouvez également configurer votre workflow CI/CD pour exécuter votre test de charge.
Pour exécuter votre test de charge dans le Portail Azure :
Dans le portail Azure, accédez à votre ressource de test de charge Azure.
Dans le volet gauche, sélectionnez Tests pour afficher la liste des tests de charge
Sélectionnez le test de charge dans la liste pour afficher les détails du test et la liste des séries de tests.
Sélectionnez Exécuter, puis Exécuter une nouvelle fois pour démarrer le test de charge.
Si vous le souhaitez, vous pouvez entrer une description de série de tests.
Lorsque vous exécutez un test de charge, Azure Load Testing déploie le script de test JMeter et tous les fichiers supplémentaires sur la ou les instances du moteur de test, puis démarre le test de charge.
Lorsque le test de charge démarre, vous devez voir le tableau de bord du test de charge.
Si le tableau de bord ne s’affiche pas, vous pouvez sélectionner Actualiser, puis sélectionner l’exécution de test dans la liste.
Le tableau de bord de test de charge présente les détails de l’exécution de test, tels que les métriques côté client et les métriques d’application côté serveur. Les graphiques du tableau de bord s’actualisent automatiquement.
Vous pouvez appliquer plusieurs filtres ou agréger les résultats à différents centile pour personnaliser les graphiques.
Conseil / Astuce
Vous pouvez arrêter un test de charge à tout moment à partir de la Portail Azure en sélectionnant Arrêter.
Attendez que le test de charge se termine complètement avant de passer à la section suivante.
Utiliser des métriques côté serveur pour identifier les goulots d’étranglement des performances
Dans cette section, vous analysez les résultats du test de charge pour identifier les goulots d’étranglement de performances dans l’application. Examinez les métriques côté client et côté serveur pour déterminer la cause racine du problème.
Tout d’abord, examinez les métriques côté client. Vous remarquez que le 90e centile de la métrique Temps de réponse pour les demandes d’API
addetgetest supérieur à celui de l’APIlasttimestamp.
Vous pouvez voir un modèle similaire pour les Erreurs, où l'
lasttimestampAPI présente moins d’erreurs que les autres API.
Les résultats des
addAPI etgetsont similaires, tandis que l'lasttimestampAPI se comporte différemment. La cause peut être liée à la base de données, car lesaddgetAPI et impliquent l’accès à la base de données.Pour examiner ce goulot d’étranglement plus en détail, faites défiler jusqu’à la section tableau de bord des métriques côté serveur .
Les métriques côté serveur affichent des informations détaillées sur les composants de votre application Azure : Azure App Service plan, Azure App Service application web et Azure Cosmos DB.
Dans les métriques du plan de Azure App Service, vous pouvez voir que les métriques pourcentage d’UC et pourcentage de mémoire se trouvent dans une plage acceptable.
Examinez maintenant les métriques côté serveur Azure Cosmos DB.
Notez que la mesure de consommation RU normalisée indique que la base de données s’exécutait rapidement à 100% d’utilisation des ressources. L’utilisation élevée des ressources peut entraîner des erreurs de limitation de base de données. Cela peut également augmenter les temps de réponse des API web
addetget.vous pouvez également voir que la mesure de débit approvisionnée pour l’instance de Azure Cosmos DB a un débit maximal de 400 unités de débit. L’amélioration du débit approvisionné de la base de données peut résoudre le problème de performances.
Augmenter le débit de la base de données
Dans cette section, vous allouez plus de ressources à la base de données pour résoudre le goulot d’étranglement des performances.
Pour Azure Cosmos DB, augmentez le paramètre de mise à l’échelle RU de la base de données :
Accédez à la ressource Azure Cosmos DB que vous avez configurée dans le cadre du déploiement de l’exemple d’application.
Ouvrez le volet Explorateur de données.
Sélectionnez Mise à l'échelle et paramètres et mettez à jour la valeur de débit sur 1200.
Sélectionnez Enregistrer pour confirmer les modifications.
Valider les améliorations des performances
Maintenant que vous avez augmenté le débit de la base de données, réexécutez le test de charge et vérifiez que les résultats des performances ont été améliorés :
Dans le tableau de bord de la série de tests, sélectionnez Réexécuter, puis réexécuter dans le volet Réexécuter le test.
Vous pouvez voir une nouvelle entrée de série de tests avec une colonne d’état qui parcourt les états Approvisionnement, En cours d’exécution et Terminé. À tout moment, sélectionnez la série de tests pour surveiller la progression du test de charge.
Une fois le test de charge terminé, vérifiez les résultats du Temps de réponse et les résultats des Erreurs des métriques côté client.
Consultez les métriques côté serveur pour Azure Cosmos DB et vérifiez que les performances ont été améliorées.
La valeur de consommation du RU normalisé Azure Cosmos DB est désormais bien inférieure à 100%.
Maintenant que vous avez mis à jour les paramètres de mise à l’échelle de la base de données, vous pouvez voir ce qui suit :
- Le temps de réponse pour les API
addetgeta été amélioré. - La consommation de RU normalisée reste bien sous la limite.
Par conséquent, les performances globales de votre application se sont améliorées.
Nettoyer les ressources
Important
Vous pouvez réutiliser la ressource Test de charge Azure que vous avez créée pour d’autres tutoriels et articles de procédure relatifs à Test de charge Azure.
Si vous n’avez pas l’intention d’utiliser les ressources que vous avez créées, supprimez-les pour éviter la facturation de frais supplémentaires. Si vous avez déployé l’exemple d’application dans un autre groupe de ressources, vous pouvez répéter les étapes suivantes.
Pour supprimer des ressources à l’aide du Portail Azure :
Sélectionnez le bouton du menu en haut à gauche, puis Groupes de ressources.
Dans la liste, sélectionnez le groupe de ressources créé.
Sélectionnez Supprimer le groupe de ressources.
Entrez le nom du groupe de ressources. Puis sélectionnez Supprimer.
Pour supprimer des ressources à l’aide d’Azure CLI, entrez la commande suivante :
az group delete --name <yourresourcegroup>
N’oubliez pas que la suppression du groupe de ressources supprime toutes les ressources qu’il contient.
Contenu connexe
- Obtenir plus d’informations sur la façon de diagnostiquer les tests défaillants
- Surveiller les métriques côté serveur pour identifier les goulots d’étranglement de performances dans votre application
- Définir des critères d’échec de test de charge pour valider les résultats des tests par rapport aux exigences de votre service
- En savoir plus sur les concepts clés du Test de charge Azure.