Partage via


Déboguer à l’aide du diagramme de travail physique (préversion) dans le portail Azure

Le diagramme de travail physique dans le portail Azure peut vous aider à visualiser les métriques clés de votre travail avec un nœud de diffusion en continu sous la forme d’un diagramme ou d’un tableau, par exemple : utilisation du processeur, utilisation de la mémoire, événements d’entrée, ID de partition et délai en filigrane. Il vous aide à identifier la cause d’un problème lorsque vous résolvez des problèmes.

Cet article montre comment utiliser le diagramme de travail physique pour analyser les performances d’un travail et identifier rapidement son goulot d’étranglement dans le portail Azure.

Important

Cette fonctionnalité est actuellement en PRÉVERSION. Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Identifier le parallélisme d’un travail

Le travail avec parallélisation est le scénario évolutif dans Stream Analytics, qui peut offrir de meilleures performances. Si une tâche n’est pas en mode parallèle, il est fort probable qu’un goulot d’étranglement affecte ses performances. Il est important d’identifier si un travail est en mode parallèle ou non. Un diagramme de travail physique fournit un graphique visuel pour illustrer le parallélisme du travail. Dans un diagramme de travail physique, s’il existe une interaction de données entre différents nœuds de diffusion en continu, ce travail est un travail non parallèle nécessite plus d’attention. Par exemple, le diagramme de travail non parallèle ci-dessous :

Capture d’écran montrant le travail non parallèle dans le diagramme physique.

Vous pouvez envisager de l’optimiser en travail parallèle (comme dans l’exemple ci-dessous) en réécrivant votre requête ou en mettant à jour des configurations d’entrée/sortie avec le simulateur de diagramme de travail dans l’extension Visual Studio Code ASA ou l’éditeur de requête dans le portail Azure. Pour en savoir plus, consultez Optimiser une requête à l’aide d’un simulateur de diagramme de travail (préversion).

Capture d’écran montrant une vue d’asymétrie des données avec un diagramme physique.

Métriques clés pour identifier le goulot d’étranglement d’un travail parallèle

Le délai en filigrane et les événements d’entrée en backlog sont les principales métriques qui permettent de déterminer les performances de votre travail Stream Analytics. Si le délai en filigrane de votre travail augmente continuellement et si les événements d’entrée sont placés dans le backlog, cela signifie que votre travail n’arrive pas à suivre le rythme des événements d’entrée et à produire des sorties en temps opportun. Du point de vue des ressources de calcul, les ressources de processeur et de mémoire sont utilisées à haut niveau lorsque ce cas se produit.

Le diagramme de travail physique visualise ces métriques clés ensemble dans le diagramme pour vous fournir une image complète de celles-ci permettant d’identifier facilement le goulot d’étranglement.

Capture d’écran montrant les métriques clés sur un nœud dans le diagramme physique.

Pour plus d’informations sur la définition des métriques, consultez la dimension de nom de nœud Azure Stream Analytics.

Identifier les événements d’entrée distribués de façon inégale (asymétrie des données)

Lorsque vous avez un travail en cours d’exécution en mode parallèle, mais observez un délai en filigrane important, utilisez cette méthode pour déterminer pourquoi.

Pour trouver la cause racine, vous ouvrez le diagramme de travail physique dans le portail Azure. Sous Surveillance, sélectionnez Diagramme de travail (préversion), puis basculez vers Diagramme physique.

Capture d’écran montrant une vue d’asymétrie des données avec un diagramme physique.

À partir du diagramme physique, vous pouvez facilement déterminer si toutes les partitions ont un délai en filigrane important, ou si ce n’est le cas que de quelques-unes d’entre elles, en affichant la valeur du délai en filigrane dans chaque nœud ou en choisissant le paramètre de carte thermique de délai en filigrane afin de trier les nœuds de diffusion en continu (recommandé) :

Capture d’écran montrant le paramètre de carte thermique de délai en filigrane.

Après avoir appliqué les paramètres de carte thermique que vous avez définis ci-dessus, vous obtenez les nœuds de diffusion en continu avec un délai en filigrane important dans l’angle supérieur gauche. Vous pouvez ensuite vérifier si les nœuds de diffusion en continu correspondants ont beaucoup plus d’événements d’entrée que d’autres. Pour cet exemple, streamingnode#0 et streamingnode#1 ont plus d’événements d’entrée.

Capture d’écran montrant la vue d’asymétrie des données avec un diagramme physique dans la carte thermique des délais en filigrane.

Vous pouvez vérifier plus en détail le nombre de partitions allouées aux nœuds de diffusion en continu individuellement afin de déterminer si plus d’événements d’entrée sont occasionnés par davantage de partitions allouées ou une partition spécifique ayant davantage d’événements d’entrée. Pour cet exemple, tous les nœuds de diffusion en continu ont deux partitions. Cela signifie que streamingnode#0 et streamingnode#1 ont une partition spécifique contenant plus d’événements d’entrée que d’autres partitions.

Pour localiser la partition qui a plus d’événements d’entrée que d’autres partitions dans streamingnode#0 et streamingnode#1, procédez comme suit :

  • Dans la section Graphique, sélectionnez Ajouter un graphique
  • Ajouter des Événements d’entrée dans une métrique, et l’ID de partition dans un séparateur.
  • Sélectionnez Appliquer pour afficher le graphique d’événements d’entrée.
  • Sélectionnez streamingnode#0 et streamingnode#1 dans le diagramme.

Vous verrez le graphique ci-dessous avec la métrique des événements d’entrée filtrée par partitions dans les deux nœuds de diffusion en continu.

Capture d’écran montrant les événements d’entrée fractionnés par partition et nœud.

Quelles autres actions pouvez-vous entreprendre ?

Comme le montre l’exemple, les partitions (0 et 1) ont plus de données d’entrée que d’autres partitions. C’est ce que nous appelons une asymétrie des données. Les nœuds de diffusion en continu qui traitent des partitions présentant une asymétrie des données doivent consommer plus de ressources de processeur et de mémoire que d’autres. Ce déséquilibre entraîne un ralentissement des performances et augmente le délai en filigrane. Vous pouvez vérifier l’utilisation du processeur et de la mémoire dans les deux nœuds de diffusion en continu ainsi que dans le diagramme physique. Pour atténuer ce problème, vous devez répartir vos données d’entrée de manière plus uniforme.

Identifier la cause d’une surcharge de processeur ou de mémoire

Quand un travail parallèle présente un délai en filigrane croissant sans la situation d’asymétrie des données mentionnée précédemment, cela peut être dû à la présence d’une quantité importante de données sur tous les nœuds de diffusion en continu, qui altère les performances. Vous pouvez voir que le travail présente cette caractéristique à l’aide du diagramme physique.

  1. Ouvrez le diagramme de travail physique, accédez à votre travail sur le portail Azure sous Surveillance, sélectionnez Diagramme de travail (préversion) et basculez vers Diagramme physique. Vous verrez le diagramme physique chargé comme ci-dessous.

    Capture d’écran montrant la vue d’ensemble de la surcharge de travail du processeur et de la mémoire.

  2. Vérifiez l’utilisation du processeur et de la mémoire dans chaque nœud de diffusion en continu pour déterminer si l’utilisation est trop élevée dans tous les nœuds de diffusion en continu. Si l’utilisation du processeur et de l’unité de diffusion en continu est très élevée (plus de 80 pour cent) dans tous les nœuds de diffusion en continu, vous pouvez conclure que ce travail a une grande quantité de données traitées dans chaque nœud de diffusion en continu.

    Dans le cas ci-dessus, l’utilisation du processeur est d’environ 90 % et l’utilisation de la mémoire est déjà de 100 %. Il montre que chaque nœud de diffusion en continu manque de ressources pour traiter les données.

    Capture d’écran montrant le processeur et la mémoire surchargé dans tous les nœuds.

  3. Vérifiez le nombre de partitions allouées à chaque nœud de diffusion en continu afin de pouvoir décider si vous avez besoin de nœuds de diffusion en continu supplémentaires pour équilibrer les partitions afin de réduire la charge des nœuds de diffusion en continu existants.

    Dans ce cas, chaque nœud de diffusion en continu a quatre partitions allouées, ce qui semble excessif pour un nœud de diffusion en continu.

Quelles autres actions pouvez-vous entreprendre ?

Envisagez de réduire le nombre de partitions pour chaque nœud de diffusion en continu afin de réduire les données d’entrée. Vous pourriez doubler les unités de diffusion en continu allouées à chaque nœud de diffusion en continu pour passer à deux partitions par nœud en augmentant le nombre de nœuds de diffusion en continu de 8 à 16. Vous pouvez également quadrupler les unités de streaming pour que chaque nœud de streaming gère les données d’une partition.

Pour en savoir plus sur la relation entre le nœud de diffusion en continu et l’unité de diffusion en continu, consultez Comprendre l’unité de diffusion en continu et le nœud de diffusion en continu.

Que dois-je faire si le délai en filigrane continue d’augmenter quand un seul nœud de streaming gère les données d’une seule partition ? Repartitionnez votre entrée avec davantage de partitions pour réduire la quantité de données dans chaque partition. Pour plus de détails, consultez Utiliser le repartitionnement pour optimiser des travaux Azure Stream Analytics.

Étapes suivantes