Le journal des performances contient des détails sur la durée d'exécution d'un job ou d'un service. Il inclut des informations sur les performances globales du job ou du service ainsi que des informations sur les performances de chaque stage du dataflow du job ou du service. Vous pouvez utiliser ces informations pour identifier les goulots d'étranglement de votre dataflow en affichant le temps d'exécution et le temps de traitement de chaque stage. Une grande différence entre le temps d'exécution et le temps de traitement signifie que le stage passe du temps à attendre les données des stages en amont. Cela peut indiquer qu'un stage en amont représente un goulot d'étranglement dans le dataflow. Notez que, pour les collecteurs de données, une grande différence entre le temps d'exécution et le temps de traitement n'indique pas forcément un problème de performances, car les collecteurs de données doivent généralement attendre les premiers enregistrements du reste du dataflow.
Pour permettre l'analyse des performances d'un job ou d'un service, utilisez la commande performancemonitor enabled set de l'utilitaire Administration.
Le journal des performances se trouve sur votre serveur Spectrum Technology Platform, à l'emplacement suivant :
SpectrumDirectory\server\logs\performance.log
Le journal des performances contient une ligne pour chaque exécution d'un job ou d'un service surveillé. Il s'agit d'un journal évolutif qui se compose d'un maximum de cinq fichiers. Chaque fichier est limité à une taille de 10 Mo. Une fois cette limite atteinte, les données de performances les plus anciennes sont supprimées lorsque de nouvelles données de performances sont consignées.
appender
dans le fichier de configuration logback.xml. Pour plus d'informations, reportez-vous à la section Fichier de configuration du logback.Chaque entrée du journal des performances contient les informations suivantes. Pour faciliter la lecture, des sauts de ligne et des indentations ont été rajoutés ci-dessous. Dans le journal réel, l'entrée se présente sur une seule ligne.
Date Time [performance] { "username":"UserName", "dataflowId":"DataflowName", "runMode":"BatchOrRealTime", "elapsedTime":Nanoseconds, "stageInfo":[ { "stageName":"Name", "stageLabel":"Label", "options":{ OptionsList }, "recordsRead":Count, "recordsWritten":Count, "executionTime":Nanoseconds, "processingTime":Nanoseconds "readBlockingTime":Nanoseconds "writeBlockingTime":Nanoseconds "readBlockingPercent":Percentage "writeBlockingPercent":Percentage } ] }
Où :
- username
- L'utilisateur qui a exécuté le job ou le service.
- dataflowID
- Nom du service ou du job tel que défini dans Spectrum Enterprise Designer.
- runMode
- Indique si l'entrée du journal est celle d'un job ou d'un service. L'un des éléments suivants :
- Batch
- L'entrée du journal est celle d'un job.
- RealTime
- L'entrée du journal est celle d'un service.
- elapsedTime
- Temps en nanosecondes nécessaire à l'exécution de la requête de job ou de service.
- stageInfo
- Répertorie les informations d'exécution de chaque stage du dataflow. Les informations suivantes sont répertoriées pour chaque stage :
- stageName
- Nom permanent du stage.
- stageLabel
- Nom du stage, défini par l'utilisateur. Le libellé du stage est indiqué sur le canevas dans Spectrum Enterprise Designer.
- options
- Si aucune des options ont été spécifiées lors de l'exécution, ces options et leurs paramètres sont répertoriés ici.
- recordsRead
- Nombre total d'enregistrements qui sont passées par le stage via tous ses ports d'entrée.
- recordsWritten
- Nombre total d'enregistrements écrits par ce stage sur tous ses ports de sortie.
- executiontime
- Temps écoulé depuis le traitement par le stage du premier au dernier enregistrements. Cela inclut le temps d'inactivité du stage, passé à attendre les données des autres stages du dataflow.
- processingtime
- Temps passé par le stage à traiter activement les enregistrements, à l'exclusion du temps d'inactivité, passé à attendre les autres stages du dataflow.
- readBlockingTime
- Durée de blocage en attendant de lire l'enregistrement suivant. Un temps de blocage de lecture long signifie qu'un processus précédent prend plus de temps que ce stage et peut indiquer qu'un réglage supplémentaire est nécessaire.
- writeBlockingTime
- Durée de blocage en attendant d'écrire l'enregistrement suivant. Un temps de blocage d'écriture long signifie qu'un processus précédent prend plus de temps que ce stage et peut indiquer qu'un réglage supplémentaire est nécessaire.
- readBlockingPercent
- Pourcentage du temps d'exécution total qu'un stage bloquait lors de la lecture d'un enregistrement.
- writeBlockingPercent
- Pourcentage du temps d'exécution total qu'un stage bloquait lors de l'écriture d'un enregistrement.