Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Performances de déploiement

Dernière mise à jour :Aug 09, 2026

Consultez les performances d'un déploiement en cours d'exécution, notamment l'utilisation du processeur, de la mémoire et des threads par son JobManager et ses TaskManagers actifs. Cette fonctionnalité vous aide à identifier les problèmes au niveau du code, tels que des initialisations de classes lentes ou une consommation excessive de ressources par certaines classes.

Prérequis

Si vous partagez un espace de travail avec d'autres comptes Alibaba Cloud ou utilisateurs RAM, vous devez leur accorder les autorisations nécessaires pour consulter les performances de déploiement. Pour plus d'informations, consultez la rubrique Autorisation de la console de développement.

Limites

  • La consultation des performances de déploiement n'est prise en charge que pour les déploiements exécutés sur Ververica Runtime (VVR) 4.0.11 ou une version ultérieure.

  • Cette fonctionnalité est disponible uniquement pour les déploiements en cours d'exécution. Vous ne pouvez pas consulter les performances des déploiements historiques.

Procédure

  1. Connectez-vous à la console Realtime Compute for Apache Flink.

  2. Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.

  3. Dans le volet de navigation de gauche, choisissez O&M > Deployments.

  4. Cliquez sur le nom du déploiement cible, puis sélectionnez l'onglet Logs.

  5. Utilisez les outils suivants pour consulter les performances du déploiement.

    Outil

    Description

    Flame Graph

    Le Flame Graph est un outil de visualisation permettant d'identifier les goulots d'étranglement liés aux performances. Il affiche les piles d'appels sous forme empilée, mettant ainsi en évidence les segments de code les plus fréquemment exécutés. Pour plus d'informations, consultez la documentation Flame Graphs.

    Cet outil vous aide à repérer rapidement les points chauds (fonctions consommant un temps processeur excessif) et à effectuer des optimisations ciblées.

    Mémoire

    Affiche les variations de la mémoire dans différentes zones de la machine virtuelle Java (JVM).

    Threads

    Permet de consulter l'état des threads et de sélectionner des threads spécifiques pour un échantillonnage et une analyse.

    Thread Dump

    Affiche les informations relatives à tous les threads à un instant donné.

Utilisation des outils d'analyse

Flame Graph

Étant généré à partir d'échantillons, le Flame Graph peut ne pas refléter l'intégralité de l'exécution du programme. Utilisez-le toujours conjointement avec d'autres outils d'analyse et adaptez votre approche à votre cas d'utilisation spécifique. Vous pouvez généralement vérifier les aspects suivants :

  • Temps processeur : les fonctions occupant une zone plus large en haut du graphique consomment généralement plus de temps processeur, ce qui indique un problème de performance potentiel.

  • Allocation de la mémoire : consultez la mémoire allouée par les différentes classes.

  • Contention de verrous : vérifiez si la contention de verrous ou les interblocages entraînent une dégradation des performances.

  • ITimer : consultez la consommation processeur de tous les threads sur le même intervalle de temps.

Dans l'onglet Running TaskManagers du déploiement cible, cliquez sur un TaskManager cible, puis sélectionnez l'onglet Debug. Ici, vous pouvez choisir un type de Flame Graph, définir un intervalle d'échantillonnage et cliquer sur Query pour générer le graphique.

  1. Comprendre la structure d'un Flame Graph

    Chaque couche d'un Flame Graph représente un niveau de la pile d'appels. La couche inférieure correspond au point d'entrée de l'application, tandis que les couches supérieures représentent des appels de fonctions plus profonds.

  2. Prêter attention à la largeur et à la fréquence des cadres

    Dans un Flame Graph, la largeur de chaque cadre représente le pourcentage du temps d'exécution pris par la fonction lors de l'échantillonnage. Un cadre plus large indique une consommation processeur plus élevée et un goulot d'étranglement potentiel. Un cadre apparaissant fréquemment, même s'il n'est pas le plus large, signale une fonction appelée de nombreuses fois, ce qui peut également entraîner un problème de performance cumulatif.

  3. Analyser la position des cadres

    La position verticale d'un cadre indique le niveau de la pile d'appels où se situe le goulot d'étranglement. Un cadre large en bas signale généralement un problème dans les premières étapes du programme ou dans la logique principale, tandis qu'un cadre large en haut peut pointer vers une fonction de traitement spécifique ou une fonction de bibliothèque.

  4. Analyser dans le contexte de votre code

    Après avoir identifié un goulot d'étranglement potentiel dans le Flame Graph, analysez le code correspondant. Recherchez des opportunités d'optimisation dans ces fonctions critiques, telles que la réduction des itérations de boucle, l'amélioration des structures de données ou la minimisation de la synchronisation.

  5. Exécuter des tests de performance

    Après avoir optimisé le code, exécutez des tests de performance pour vérifier les améliorations. Comparez les Flame Graphs avant et après vos modifications pour confirmer que le goulot d'étranglement est résolu.

Remarque

Si certaines parties du Flame Graph s'affichent sous la mention « UnKnown », cela indique l'utilisation de méthodes natives, pour lesquelles les noms de méthodes Java ne sont pas censés apparaître. Pour plus d'informations, consultez la page Unknown.

Threads

  1. Accédez à l'onglet Debug.

    • Performances du JobManager

      Dans l'onglet Logs, cliquez sur l'onglet JobManager, puis sur Debug.

    • Performances des TaskManagers en cours d'exécution

      Dans l'onglet Logs, cliquez sur l'onglet Running TaskManagers, cliquez sur une valeur dans la colonne Path, ID, puis sur Debug.

  2. Dans l'onglet Threads, localisez l'opérateur cible et cliquez sur Sample dans la colonne Actions. Après une période d'échantillonnage, observez sa pile de threads. Par exemple, voici une pile de threads pour l'accès à l'état Gemini.

    La boîte de dialogue Single Thread Sampling affiche les résultats, y compris un graphique linéaire de l'utilisation du processeur et un tableau d'échantillons de pile. Ici, vous pouvez consulter la pile d'appels de méthode, telle que java.lang.Object.wait, à chaque point d'échantillonnage. Cliquez sur Pause Sampling pour arrêter la collecte des données.

Thread Dump

  1. Dans l'onglet Logs, cliquez sur l'onglet Running TaskManagers, puis cliquez sur une valeur dans la colonne Path, ID.

  2. Dans l'onglet Thread Dump, effectuez une recherche par nom d'opérateur et observez la pile de threads pour voir si elle accède à l'état. Une pile affichant systématiquement des appels dans le chemin d'accès Gemini ou RocksDB l'indique.

    Pour trouver le nom d'un opérateur à utiliser dans l'onglet Thread Dump, accédez à la page de détails du TaskManager cible. Vous trouverez le nom de l'opérateur cible dans l'onglet Status.

    Le panneau Detail à droite affiche le plan d'exécution de chaque opérateur, fournissant des noms tels que TableSourceScan, Calc et Sink pour votre recherche dans le Thread Dump.

Documents connexes

  • Le service de diagnostic intelligent des déploiements vous aide à surveiller l'état de santé de vos déploiements et garantit la stabilité et la fiabilité de votre activité. Pour plus d'informations, consultez la rubrique diagnostic intelligent des déploiements.

  • Vous pouvez améliorer les performances des déploiements Flink SQL en optimisant les configurations et les requêtes. Pour plus d'informations, consultez la rubrique Techniques d'optimisation haute performance pour Flink SQL.