Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Introduction aux outils de statistiques de performances pour les agents de lecture de journal de réplication et de Distribution de réplication

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 2892631
Introduction
Statistiques de performances ont été ajoutés à la mslogreader_historytable et la msdistribution_historytable sur la base de données de distribution dans Microsoft SQL Server. Vous pouvez utiliser ces statistiques pour voir l'historique récent de la performance des agents de lecture de journal de réplication et de Distribution de réplication.

Remarque Ces modifications étaient premier génère de SQL Server dans les éléments suivants :
  • 9.00.4220
  • 9.00.3315
  • 10.00.1806
  • 10.00.2714

Toutes les cinq minutes, les statistiques de performances pour les agents de lecture du journal et de Distribution sont recordedin les tables d'historique. Par défaut, seules les données des dernières 48 heures sont conservées. Un processus de nettoyage supprime les données antérieures à 48 heures. La valeur par défaut peut être modifiée par l'exécution de la procéduresp_changedistributiondb stockées et en spécifiant une nouvelle valeur pour le paramètre conservation_de_l .

Voici un exemple de sortie de performances à partir de la table de l'historique de l'Agent de lecture du journal :

<stats state="1" work="9" idle="295">  <reader fetch="8" wait="0"/>  <writer write="9" wait="0"/>  <sincelaststats elapsedtime="304" work="9" cmds="52596" cmdspersec="5753.000000">    <reader fetch="8" wait="0"/>    <writer write="9" wait="0"/>  </sincelaststats></stats> 

Il existe trois événements d'état qui peuvent être enregistrées :
ÉtatDescription
1Événements normaux qui décrivent les performances de thread à la fois le lecteur et le writer.
2Déclenché des événements qui se produisent lorsque le thread de lecture d'un agent attend plus de temps - messageintervalde l'agent. (Par défaut, le délai est de 60 secondes.) Si vous remarquez des événements d'état 2 qui sont enregistrées pour un agent, cela indique que l'agent prend beaucoup de temps à écrire les modifications dans la destination.
3Déclenché des événements qui sont générés uniquement par l'Agent de lecture du journal lorsque le writer est en attente plus longtemps que la durée- messageinterval. Si vous remarquez des événements d'état 3 qui sont enregistrés pour l'Agent de lecture du journal, cela indique que l'agent prend beaucoup de temps à analyser les modifications répliquées du journal des transactions.
Thread de lecture de l'Agent de distribution
Les statistiques de performances suivantes montrent une situation dans laquelle il est temps de latence dans la topologie de réplication et dans lequel le goulot d'étranglement est le thread de lecture de l'Agent de Distribution. Ce thread interroge la base de données de distribution)Serveur de distribution>.. MSdistribution_history.Commentstable) pour les commandes à appliquer sur l'abonné.

<stats state="1" work="14798" idle="2035">
<reader fetch="14798" wait="193"></reader>
<writer write="12373" wait="9888"></writer>
<sincelaststats elapsedtime="424" work="415" cmds="296900" cmdspersec="713.000000">
<reader fetch="415" wait="7"></reader>
<writer write="377" wait="212"></writer>
</sincelaststats>
</stats>


Le temps d'attente writer (212 secondes) « sincelaststats » s'affiche en haut. Il s'agit de la durée d'attente de la thread d'écriture pour le thread de lecture fournir des tampons que la thread d'écriture peut appliquer à la base de données de l'abonné. Thread de lecture TheDistribution Agent exécute la procédure stockée desp_MSget_repl_commands .

Si vous remarquez haute writer de délai d'attente dans les statistiques de performance de l'Agent de Distribution, vous devez analyser les performances de l'exécution de l'Agent de Distribution sur le serveur de distribution et de la base de données. En particulier, vous devez examiner la durée d'exécution de la procédure stockée desp_MSget_repl_commands .
Thread d'écriture de l'Agent de distribution
Les statistiques de performances suivantes montrent une situation dans laquelle il est temps de latence dans la topologie de réplication et dans lequel le goulot d'étranglement est le thread de lecture de l'Agent de Distribution. Ce thread interroge la base de données de distribution)Serveur de distribution>.. MSdistribution_history.Comments table) pour les commandes à appliquer sur l'abonné.

Remarque L'état est 2, et la sortie est différente de celle des statistiques d'état 1. 2 un état données indiquent que le thread de lecture a dû attendre plus longtemps que de l'Agent Distribution configurémessageinterval - valeur. Par défaut, la valeur - messageinterval est de 60 secondes.

<stats state="2" fetch="48" wait="384" cmds="1028" callstogetreplcmds="321">
<sincelaststats elapsedtime="312" fetch="47" wait="284" cmds="1028" cmdspersec="3.000000"></sincelaststats>
</stats>


Si la valeur de -messageintervalest augmentée, vous pouvez recevoir à nouveau des statistiques d'état 1 semblables aux suivants :

<stats state="1" work="1941" idle="0">
<reader fetch="717" wait="1225"></reader>
<writer write="1941" wait="134"></writer>
<sincelaststats elapsedtime="764" work="764" cmds="1170730" cmdspersec="1530.000000">
<reader fetch="258" wait="505"></reader>
<writer write="764" wait="50"></writer>
</sincelaststats>
</stats>


Remarque Le délai d'attente de sincelaststats extraction de 505 secondes est très élevé.

Si vous remarquez de lecteur élevé d'attente dans les statistiques de performances de l'Agent de Distribution, vous devez analyser les performances de l'exécution de l'Agent de Distribution sur le serveur de l'abonné et la base de données. Utilisez l'outil de trace du Générateur de profils pour analyser les performances de l'exécution de procédures stockées de réplication. Généralement, les procédures stockées sont nommés comme suit :
  • sp_Msupd_ownertablename>
  • sp_Msins_ownertablename>
  • sp_Msdel_ownertablename>
En outre, pour déterminer si le goulet d'étranglement est basée sur le système ou matériel, utilisez l'Analyseur de performances pour surveiller les performances du système. Par exemple, utiliser les performances moniteur pour analyser les compteurs de disque physique.
Thread de lecture de l'Agent de lecture de journal
Les statistiques de performances suivantes montrent une situation dans laquelle il est temps de latence dans la topologie de réplication et dans lequel le goulot d'étranglement est le thread de lecture Agent de lecture du journal. Le thread de lecture Agent de lecture du journal analyse le journal de transactions de base de données publiée pour les commandes à livrer à la base de données de distribution.

<Distribution server="">.. MSlogreader_history.Comments

</Distribution>
<stats state="1" work="301" idle="0">
<reader fetch="278" wait="0"></reader>
<writer write="12" wait="288"></writer>
<sincelaststats elapsedtime="301" work="301" cmds="104500" cmdspersec="347.000000">
<reader fetch="278" wait="0"></reader>
<writer write="12" wait="288"></writer>
</sincelaststats>
</stats>


Les statistiques d'attente writer sincelaststats de 288 secondes s'affiche en haut. Il s'agit de l'heure à laquelle la thread d'écriture attend que le thread de lecture fournir des tampons à appliquer. Le thread de lecture Agent de lecture du journal s'exécute la procéduresp_replcmdsstockées. Si vous remarquez writer haute attendre des threads dans les statistiques de performances de l'Agent de lecture du journal, vous devez connaître les performances de l'exécution de l'Agent de lecture du journal sur le serveur de publication et de la base de données et puis examinez la durée d'exécution de la procéduresp_replcmds stockées.

Voici la description de chaque statistique de performances :
StatistiquesÉtatDescription
ÉtatÉtat 1: Cet état indique que le rapport de performances est habituel après une validation par lots.

État 2: Lecteur de thread indique que la lecture d'un lot attend plus de temps à la valeur de la propriété messageinterval.

État 3: Thread d'écriture indique qu'une écriture lot attend plus de temps à la valeurmessageinterval .
commandes livrées2 uniquementCet état indique le nombre de commandes qui sont lus par l'Agent de theDistribution.
callstogetreplcmds2 uniquementCet état indique le nombre d'appels de la procédure stockée de sp_MSget_repl_commandspar l'Agent de Distribution.
travailLa valeur représente le temps que l'agent consacrée au depuis le dernier démarrage de l'agent. Le temps exclut le temps d'inactivité.
inactifLa valeur représente le temps que l'agent attend pour appeler la procédure sp_replcmds stockées lors de l'appel précédent ne renvoie pas de transactions, ou lorsque le nombre de transactions est inférieur à la valeur de la propriété Maximum_de_transactions depuis le dernier démarrage de l'agent.
extraction de lecteurLa valeur représente le temps passé par le lecteur depuis le dernier démarrage de l'agent. Le temps exclut le temps d'inactivité et le temps d'attente-pour-writer.
attente du lecteurLa valeur représente le temps d'attente-pour-writer cumulé depuis le dernier démarrage de l'agent. La valeur indique le temps passé à attendre que le thread d'écriture de terminer l'utilisation de la mémoire tampon de données avant que le lecteur peut remplir la mémoire tampon de données à nouveau.
écriture de writerLa valeur représente le temps que le rédacteur a passé depuis le dernier démarrage de l'agent. Le temps exclut le temps d'inactivité et le temps d'attente pour-lecteur.

Pour en attente d'écriture, cette valeur représente le temps d'attente pour-lecteur depuis le dernier démarrage de l'agent. La valeur indique le temps passé à attendre que le thread de lecture finisse de remplir le tampon de données avant que le rédacteur puisse appliquer le tampon de données.
sincelaststats_elapsed_timeLe nœud sincelaststats affiche les statistiques similaires pour la période commençant au dernier événement statistiques enregistrées. Par défaut, la période est de cinq minutes. Le temps exclut le temps d'inactivité. La valeur représente le temps écoulé depuis le dernier événement de statistiques enregistrées.
sincelaststats de travailLa valeur représente l'heure à laquelle l'agent passé depuis le dernier événement de statistiques.
commandes sincelaststatsLa valeur représente le nombre de commandes depuis le dernier événement de statistiques.
sincelaststats cmdspersecLa valeur représente le nombre de commandes qui sont exécutées par seconde depuis le dernier événement de statistiques.
extraction de sincelaststats\readerLa valeur représente le temps passé par le lecteur depuis le dernier événement de statistiques. Le temps exclut le temps d'inactivité et le temps d'attente-pour-writer.
attente de sincelaststats\readerLa valeur représente le temps d'attente-pour-writer cumulé depuis le dernier événement de statistiques. La valeur indique le temps passé à attendre que le thread d'écriture de terminer l'utilisation de la mémoire tampon de données avant que le lecteur peut remplir la mémoire tampon de données à nouveau.
sincelaststats\writerLa valeur représente l'argument cumul de temps ce writer passé depuis le dernier événement de statistiques. Le temps exclut le temps d'inactivité et le temps d'attente pour-lecteur.
attente de sincelaststats\writerLa valeur représente le temps d'attente pour-lecteur depuis le dernier événement de statistiques. La valeur indique le temps passé à attendre que le thread de lecture finisse de remplir le tampon de données avant que le writer peut appliquer le tampon de données.
Script de chargement MSlogreader_history et MSdistribution_history exécuter des statistiques à partir de données XML dans une table qui peut être interrogée facilement
Il existe 4 aide d'exemples de script que vous extrayez les statistiques de performances dans une table permanente qui peut être interrogée facilement. Il existe également une procédure stockée qui environ corrèle les statistiques de performance de l'Agent de lecture de journal pour les statistiques de performance de l'Agent de Distribution (autrement dit, à la table de perf_stats_tab).

Pour obtenir les exemples de scripts, reportez-vous auCet exempleCliquez sur KB2892631.zip, puis uncompressfile KB2892631.zip, vous verrez les quatre suivantes des fichiers de script :
  • Version d'origine de la file:perf_stats_script.sql Perf_stats_script.sql
  • Révisé Usp_move_stats_to_table.sql fichier : usp_move_stats_to_table.sql
  • Révisé Sp_endtoend_stats.sql fichier : sp_endtoend_stats.sql
  • Un autre script pour lire les données en temps réel ou à partir d'une sauvegarde de base de données de distribution : Additional_Script.sql

Remarques

  • La table perf_stats_tab contient les statistiques de performance pour l'Agent de lecture du journal et l'Agent de Distribution. Les statistiques peuvent être interrogées indépendamment en utilisant le TYPE où = « Justifié » clause ou le TYPE dans lequel = « LogRead a » clause.
  • La procédure stockée de move_stats_to_tab ouvre un curseur sur la table mslogreader_history et la table msdistribution_history, puis appelle la procédure stockée de move_stats_to_tab pour chaque ligne afin d'extraire les données de statistiques de performance de XML dans la table perf_stats_tab.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 2892631 - Dernière mise à jour : 05/04/2016 07:45:00 - Révision : 2.0

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2892631 KbMtfr
Commentaires