Surveiller et optimiser les performances de la passerelle de données locale

Surveillance des performances de la passerelle (préversion publique)

Pour surveiller les performances, les administrateurs de passerelles s’appuyaient traditionnellement sur la surveillance manuelle des compteurs de performances via l’outil Analyseur de performances Windows. Nous proposons désormais une journalisation supplémentaire des requêtes et un fichier de modèle PBI des performances de la passerelle pour visualiser les résultats. Cette fonctionnalité offre de nouveaux insights sur l’utilisation de la passerelle. Vous pouvez l’utiliser pour résoudre les problèmes des requêtes lentes.

Remarque

Cette fonctionnalité n’est actuellement disponible que pour la passerelle de données locale en mode standard. Elle n’est pas disponible pour le mode personnel.

Remarque

Les diagnostics de passerelle ne capturent pas les diagnostics directement liés à la machine (virtuelle) et à son réseau, comme la bande passante ou la latence. Toutefois, ces diagnostics peuvent affecter les performances de votre passerelle. Vous pouvez utiliser des outils de surveillance des ressources pour surveiller votre machine.

Le rapport Diagnostics Power BI.

Journalisation des performances

Cette fonctionnalité est désormais activée par défaut.

Remarque

  • Actuellement, les requêtes de la capacité Premium à la passerelle sont parfois oubliées dans cette journalisation. Nous travaillons activement à résoudre ce problème.
  • Actuellement, les requêtes de rapport paginé Power BI ne sont pas enregistrées à l’aide de cet outil.

Configurer la journalisation des performances

Il existe d’autres valeurs dans le fichier de configuration C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config que vous pouvez mettre à jour au besoin :

  • ReportFilePath : détermine le chemin où les quatre fichiers journaux sont stockés. Par défaut, ce chemin est \Users\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Report ou \Windows\ServiceProfiles\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Report. Le chemin d’accès dépend de la version du système d’exploitation. Si vous utilisez un compte de service pour la passerelle autre que PBIEgwService, remplacez cette partie du chemin d’accès par le nom du compte de service.
  • ReportFileCount : détermine le nombre de fichiers journaux de chaque type à conserver. La valeur par défaut est 10.
  • ReportFileSizeInBytes : détermine la taille du fichier à conserver. La valeur par défaut 104,857,600.
  • QueryExecutionAggregationTimeInMinutes : détermine le nombre de minutes pendant lesquelles les informations d’exécution des requêtes sont agrégées. La valeur par défaut est 5.
  • SystemCounterAggregationTimeInMinutes : détermine le nombre de minutes pendant lesquelles le compteur système est agrégé. La valeur par défaut est 5.

Après avoir apporté les modifications au fichier de configuration, redémarrez la passerelle pour que ces valeurs de configuration prennent effet. Les fichiers de rapport sont maintenant générés à l’emplacement que vous avez spécifié pour ReportFilePath.

Remarque

Jusqu’à 10 minutes plus le temps défini pour QueryExecutionAggregationTimeInMinutes dans le fichier de configuration peuvent s’écouler avant que les fichiers commencent à apparaître dans le dossier.

Comprendre les journaux de performances

Quand vous activez cette fonctionnalité, quatre nouveaux fichiers journaux sont créés :

  • Le rapport d’exécution de la requête
  • Le rapport de démarrage de la requête
  • Le rapport d’agrégation de l’exécution de la requête
  • Le rapport d’agrégation du compteur système

Le rapport d’exécution de la requête contient des informations détaillées sur l’exécution de la requête. Les attributs suivants sont capturés.

Attribut Description
GatewayObjectId Identificateur unique de la passerelle.
RequestId Identificateur unique d’une requête de passerelle. Il peut être identique pour plusieurs requêtes.
Source de données Contient à la fois le type de source de données et la source de données.
QueryTrackingId Identificateur unique d’une requête. Il peut cependant se répéter si une requête échoue et est réessayée.
QueryExecutionEndTimeUTC Heure à laquelle l’exécution de la requête s’est terminée.
QueryExecutionDuration (ms) Durée d’exécution d’une requête.
QueryType Type de requête. Par exemple, la requête transmise peut être une actualisation Power BI ou DirectQuery. Ou bien, il peut s’agir de requêtes à partir de Power Apps et de Power Automate.
DataProcessingEndTimeUTC Heure à laquelle les activités de traitement de données comme la mise en file d’attente, l’extraction de données, la compression et le traitement de données sont terminées.
DataProcessingDuration (ms) Durée des activités de traitement de données comme la mise en file d’attente, l’extraction de données, la compression et le traitement de données.
Réussite Indique si la requête a réussi ou a échoué.
ErrorMessage Si la requête a échoué, indique le message d’erreur.
SpoolingDiskWritingDuration (ms) Indique le temps nécessaire à la passerelle pour écrire toutes les données sur le disque
SpoolingDiskReadingDuration (ms) Indique le temps nécessaire à la passerelle pour lire toutes les données sur le disque
SpoolingTotalDataSize (octets) Taille (compressée) des données écrites/lues sur le disque
DataReadingAndSerializationDuration (ms) Indique le temps nécessaire à la passerelle pour lire les données de la source de données et les sérialiser en paquets.
DiskRead (octet/s) Indique les octets lus par la passerelle par seconde. DiskRead(octet/s) = SpoolingTotalDataSize / SpoolingDiskReadingDuration
DiskWrite (octet/s) Indique les octets écrits par la passerelle par seconde. DiskWrite(octet/s) = SpoolingTotalDataSize / SpoolingDiskWritingDuration

Le rapport de démarrage de la requête contient la requête et l’heure de début de la requête. Les attributs suivants sont capturés.

Attribut Description
GatewayObjectId Identificateur unique de la passerelle.
RequestId Identificateur unique d’une requête de passerelle. Il peut être identique pour plusieurs requêtes.
Source de données Contient à la fois le type de source de données et la source de données.
QueryTrackingId Identificateur unique d’une requête. Il peut cependant se répéter si une requête échoue et est réessayée.
QueryExecutionStartTimeUTC Heure à laquelle l’exécution de la requête a commencé.
QueryType Type de requête. Par exemple, la requête transmise peut être une actualisation Power BI ou DirectQuery. Ou bien, il peut s’agir de requêtes à partir de Power Apps et de Power Automate.
QueryText Requête complète encodée en base64.
EvaluationContext Contient l'identifiant de l'artefact (c'est-à-dire l'identifiant de la base de données pour les modèles sémantiques, l'identifiant des flux de données, etc.) ainsi que des identifiants de trace supplémentaires en fonction de l'artefact. Notez que ce champ ne s'affiche que pour les charges de travail prises en charge dans Fabric, Power Platform, Azure Analysis Services et certains connecteurs dans Azure Logic Apps. Il s'agit notamment des : modèles sémantiques, flux de données Gen2 et flux de données Power Platform. Il comprend également des charges de travail Azure Logic Apps pour les connecteurs Azure Mashup Query, HTTP et File. La valeur contiendra différents identifiants de trace en fonction de la charge de travail utilisée. Power BI et Fabric Dataflows Gen 1 et Power BI Paginated Reports ne sont pas pris en charge.

Le rapport d’agrégation de l’exécution de la requête contient les informations de requête agrégées sur un intervalle de temps par GatewayObjectId, DataSource, Success et QueryType. La valeur par défaut est de 5 minutes, mais vous pouvez la changer. Les attributs suivants sont capturés.

Attribut Description
GatewayObjectId Identificateur unique de la passerelle.
AggregationStartTimeUTC Début de la fenêtre de temps pendant laquelle les attributs de requête ont été agrégés.
AggregationEndTimeUTC Fin de la fenêtre de temps pendant laquelle les attributs de requête ont été agrégés.
Source de données Contient à la fois le type de source de données et la source de données.
Réussite Indique si la requête a réussi ou a échoué.
AverageQueryExecutionDuration (ms) Durée d’exécution moyenne de la requête pour la fenêtre de temps de l’agrégation.
MaxQueryExecutionDuration (ms) Durée d’exécution maximale de la requête pour la fenêtre de temps de l’agrégation.
MinQueryExecutionDuration (ms) Durée d’exécution minimale de la requête pour la fenêtre de temps de l’agrégation.
QueryType Type de requête. Par exemple, la requête transmise peut être une actualisation Power BI ou DirectQuery. Ou bien, il peut s’agir de requêtes à partir de Power Apps et de Power Automate.
AverageDataProcessingDuration (ms) Durée moyenne des activités de traitement de données comme la mise en file d’attente, l’extraction de données, la compression et le traitement de données pour la fenêtre de temps de l’agrégation.
MaxDataProcessingDuration (ms) Durée maximale des activités de traitement de données comme la mise en file d’attente, l’extraction de données, la compression et le traitement de données pour la fenêtre de temps de l’agrégation.
MinDataProcessingDuration (ms) Durée minimale des activités de traitement de données comme la mise en file d’attente, l’extraction de données, la compression et le traitement de données pour la fenêtre de temps de l’agrégation.
Count le nombre de requêtes ;

Le rapport d’agrégation du compteur système contient des valeurs de compteur système agrégées sur un intervalle de temps. La valeur par défaut est de 5 minutes, mais vous pouvez la changer. Les attributs suivants sont capturés.

Attribut Description
GatewayObjectId Identificateur unique de la passerelle.
AggregationStartTimeUTC Début de la fenêtre de temps pour les compteurs système qui ont été agrégés.
AggregationEndTimeUTC Fin de la fenêtre de temps pour les compteurs système qui ont été agrégés.
CounterName Les compteurs système s’appliquent chacun à un serveur qui héberge un nœud de passerelle et incluent :
SystemCPUPercent : processeur utilisé sur le serveur, exprimé en pourcentage du processeur total disponible.
SystemMEMUsedPercent : mémoire utilisée sur le serveur, exprimée en pourcentage de la mémoire totale disponible.
GatewayCPUPercent : somme du pourcentage de processeur utilisé par le processus de la passerelle sur chaque cœur. Pour obtenir le pourcentage du processeur utilisé sur le serveur, divisez gatewayCPUPercent par le nombre de cœurs.
GatewayMEMKb : somme de la mémoire totale en kilo-octets utilisée par le processus de la passerelle.
Max Valeur maximale du compteur système pour la fenêtre de temps d’agrégation.
Min Valeur minimale du compteur système pour la fenêtre de temps d’agrégation.
Moyenne Valeur moyenne du compteur système pour la fenêtre de temps d’agrégation.

Visualiser les performances de la passerelle

Maintenant, vous pouvez visualiser les données contenues dans les fichiers journaux.

  1. Téléchargez le modèle PBI des performances de la passerelle et ouvrez-le à l’aide de Power BI Desktop.

  2. Dans la boîte de dialogue qui s’ouvre, vérifiez que le chemin d’accès du dossier correspond à la valeur du champ ReportFilePath.

    Fenêtre contextuelle pour le chemin d’accès du dossier.

  3. Sélectionnez Charger et le fichier modèle commence à charger les données à partir de vos fichiers journaux. Tous les visuels sont remplis à l’aide des données des rapports.

  4. Vous pouvez également enregistrer ce fichier au format PBIX et le publier sur votre service pour des actualisations automatiques. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Publier des modèles sémantiques et des rapports depuis Power BI Desktop.

Vous pouvez également personnaliser ce fichier de modèle en fonction de vos besoins. Pour plus d’informations sur les modèles Power BI, consultez ce billet de blog Microsoft Power BI.

Surveillance du stockage en file d’attente

Par défaut, le stockage en file d’attente pour la passerelle se trouve à l’emplacement suivant : C:\Users\PBIEgwService\AppData\Local\Microsoft\Passerelle de données locale\Spooler. Veillez à surveiller cet emplacement pour vous assurer qu’il y a suffisamment d’espace disque libre. Plus d’informations : Données de mise en file d’attente de la passerelle

Requêtes lentes

Les requêtes lentes peuvent nécessiter une modification supplémentaire de votre source de données ou une optimisation supplémentaire de la requête elle-même. Il peut s’agir d’actualisations Power BI ou de requêtes de base de données directes, telles que Power BI DirectQuery, Power Apps ou Azure Logic Apps.

Par défaut, la passerelle procède à une journalisation de base. Si vous étudiez des requêtes lentes, en plus d’utiliser la fonction de surveillance des performances, vous pouvez temporairement activer Journalisation supplémentaire pour recueillir des informations de journal supplémentaires, y compris les journaux du moteur de mashup, les chaînes de requête et la traçabilité au niveau verbeux. Ces journaux sont écrits au même endroit que vos journaux de passerelle normaux. Pour ce faire, dans l’application de la passerelle de données locale, sélectionnez Diagnostic>Journalisation supplémentaire.

Activer la journalisation supplémentaire.

Selon l’utilisation de la passerelle, l’activation de ce paramètre peut considérablement augmenter la taille du journal. Nous recommandons, une fois les journaux consultés, de désactiver la journalisation supplémentaire. Nous vous déconseillons de laisser ce paramètre activé dans le cadre de l’utilisation normale de la passerelle.

Optimiser les performances en diffusant en continu des données

Par défaut, la passerelle de données locale enregistre les données sur un support intermédiaire avant de les renvoyer vers le modèle sémantique, ce qui peut potentiellement ralentir les performances pendant les opérations de chargement et d’actualisation des données. Le comportement par défaut peut être substitué.

  1. Dans le fichier C:\Program Files\On-Premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config, définissez le paramètre StreamBeforeRequestCompletes sur True, puis enregistrez-le.

    <setting name="StreamBeforeRequestCompletes" serializeAs="String">
       <value>True</value>
    </setting>
    
  2. Dans Passerelle de données locale>Paramètre de service, redémarrez la passerelle.

Remarque

L’activation de StreamBeforeRequestCompletes peut engendrer des problèmes de fiabilité des requêtes lorsque vous utilisez des sources de données lentes ou soumises à des connexions réseau instables/limitées.

Optimiser les performances en excluant des dossiers spécifiques de l’analyse antivirus

Pour éviter des impacts potentiels sur les performances, certains dossiers peuvent être exclus de l’analyse antivirus quand vous utilisez un logiciel antivirus au niveau des fichiers sur le serveur où une passerelle de données locale est installée. Si ces dossiers ne sont pas exclus, vous pourriez constater des impacts sur les performances et potentiellement d’autres comportements inattendus, car ces dossiers font l’objet d’une grande quantité d’opérations d’écriture et constituent en fait des pipelines de données de la passerelle de données locale.

Dossiers susceptibles d’être exclus de l’analyse antivirus sur le serveur de la passerelle de données locale

Remarque

L’espace réservé Lecteur suivant représente la lettre du lecteur sur lequel la passerelle de données locale est installée. En règle générale, la lettre du lecteur est C. L’espace réservé CompteService suivant représente le compte de service qui exécute la passerelle de données locale. Le compte par défaut est PBIEgwService.

  • Répertoire de journalisation : Lecteur:\Windows\ServiceProfiles\ CompteService \AppData\Local\Microsoft\On-premises data gateway
  • Répertoire de stockage de file d’attente : Lecteur:\Windows\ServiceProfiles\ CompteService \AppData\Local\Microsoft\On-premises data gateway\Spooler

Étapes suivantes