Sybase Replication Server - Configuration des compteurs 12.5

Logo

Introduction

Replication Server 12.5 rassemble des statistiques en utilisant plus d’une centaine de compteurs différents. Par défaut, la plupart des compteurs sont actifs et il est possible d’afficher les valeurs en cours à tout moment.

Les valeurs des compteurs peuvent être à tout moment vidées ou sauvegardées dans la RSSD, sous réserve de surveiller l’espace disponible au niveau de la base RSSD.

La configuration des compteurs par défaut est définie de façon à limiter la quantité de données transmises à la RSSD. Plusieurs commandes et paramètres de configuration permettent de contrôler les mesures qui sont sauvegardées dans la RSSD et à quels moment elles le sont.

Démon dSTATS

Le démon dSTATS contrôle le vidage. Trois tables systèmes contiennent des informations sur les compteurs :

  • rs_statcounters : contient des informations descriptives sur chaque compteur
  • rs_statrun : décrit chaque période d’échantillonage (ou exécution)
  • rs_statdetail : contient des mesures pour chaque exécution.

Le démon dSTATS est un thread à part entière de Replication Server 12.5 et est affiché avec la commande admin who

admin who

111 dREC   Active dREC
112 dSTATS Active
220 USER   Active sa

Modules et compteurs

Replication Server exécute plusieurs threads simultanément. Le nombre total de threads dépend du nombre de bases de données que gère un Replication Server et du nombre de routes directes.

Modules

Certains threads appellent des parties spécifiques (ou modules) de Replication Server pour déterminer la destination des messages et des transactions, ainsi que les opérations à répliquer et le mode de réplication.

Replication Server propose un ou plusieurs compteurs pour chaque module de Replication Server.

Les modules sont de trois types :

  • modules multithread
  • modules à thread unique
  • modules sans thread

Modules multithread

Les modules multithread peuvent avoir plusieurs instances de thread. Ces modules sont les suivants :

  • SQM (Stable Queue Manager)
  • SQT (Stable Queue Transaction)
  • Thread distributeur
  • Thread DSI (Data Server Interface)
  • Thread RSI (Replication Server Interface)
  • Agent de réplication ou REPAGENT

Exemple :

146      DIST        Active             273 GLOSS.prd_swift_iso_c
79       SQT         Awaiting Wakeup    273:1  DIST GLOSS.prd_swift_iso_c
974      SQM         Awaiting Message   273:1 GLOSS.prd_swift_iso_c
125      DSI EXEC    Awaiting Command   343(1) SPARGLOSP02.prd_swift_iso_c
353      DSI         Awaiting Command   343 SPARGLOSP02.prd_swift_iso_c
55       REP AGENT   Awaiting Command   SPARGLOSP02.prd_swift_iso_c

Chaque thread d’un module multithread possède une instance de ses différents compteurs.

Modules à thread unique

Les modules à thread unique ont une seule instance de thread. Tous les démons de Replication Server, tels que le démon dCM (Connection Manager Daemon, ou démon de gestionnaire des connexions) appartiennent à ce groupe.

Les modules à thread unique n’ont qu’une instance de compteur.

Modules sans thread

  • MD (Message Delivery, ou livraison de messages)
  • TD (Transaction Delivery, ou livraison de transactions)
  • SRE (Subscription Resolution Engine, ou moteur de résolution de souscriptions).
  • STS (System Table Services, ou services des tables système)
  • MEM (Memory Management, ou gestion de la mémoire)

Les modules sans thread n’ont qu’une instance de compteur.

Compteurs

Il existe plus de 100 compteurs pour contrôler les performances de Replication Server.

La procédure stockée rs_helpcounter dans la base RSSD affiche les informations descriptives sur les compteurs courants.

exec rs_helpcounter

ModuleName
 ------------------------------
 CM
 DIST
 DSI
 DSIEXEC
 REPAGENT
 RSI
 SQM
 SQMR
 SQT
 STS
 SYNC
 SYNCELE

 How to Use rs_helpcounter
 ----------------------------------------------------------------
 rs_helpcounter [intrusive | sysmon | rate | duration | internal
                 | must_sample | no_reset | keep_old | configure]
 rs_helpcounter ModuleName [, {type | short | long}]
 rs_helpcounter keyword    [, {type | short | long}]

Noms des compteurs

Chaque compteur possède trois noms différents : un nom externe descriptif, un nom d’affichage utilisé pour identifier le compteur dans une commande RCL, et un ID unique au sein de Replication Server.

Exemple :

exec rs_helpcounter CmdsApplied

Display Name  Module Name   Counter Name
 -----        ------------- ---------------------------
 CmdsApplied  DSIEXEC       DSIEXEC: Commands applied
 CmdsApplied  REPAGENT      Repagent: Applied commands

Dans l’exemple ci-dessus, CmdsApplied est le nom d’affichage du compteur pour identifier le compteur, et "RepAgent : Applied commands" est le nom externe descriptif.

Types de compteurs

Chaque compteur a un type qui détermine sa méthode d’échantillonnage des données. Ces types sont au nombre de quatre :

  • compteurs à valeur maximale, qui ne conservent que la plus grande valeur échantillonnée
  • compteur à valeur moyenne, qui conservent la totalité des valeurs échantillonnées et le nombre d’éléments échantillonnés
  • compteurs à valeur récente, qui conservent la dernière valeur des données échantillonnées.
  • Compteurs à total cumulé, qui conserve le total actif des données échantillonnées.

Pour afficher les types des compteurs, utiliser la commande rs_helpcounter avec l’option 'type'

exec rs_helpcounter REPAGENT, type

Display Name         Module Name   Counter Type  Counter Status
------------         ------------  ----------    ------------
BuffersReceived      REPAGENT      Total         0
BytesReceived        REPAGENT      Total         4
CmdsApplied          REPAGENT      Total         4
CmdsDumpLoadDB       REPAGENT      Total         0
CmdsEnRepMarker      REPAGENT      Total         0
CmdsMiniAbort        REPAGENT      Total         4
CmdsPurgeOpen        REPAGENT      Total         0
CmdsRequest          REPAGENT      Total         4
CmdsRouteRCL         REPAGENT      Total         0
CmdsSystem           REPAGENT      Total         0
CmdsTotal            REPAGENT      Total         4
EmptyPackets         REPAGENT      Total         0
PacketSize           REPAGENT      Last         10
PacketsReceived      REPAGENT      Total         4
RAWriteWaits         REPAGENT      Total         4
RAWriteWaitsTimeAve  REPAGENT      Average      25
RAYieldTimeAve       REPAGENT      Average      25
RAYields             REPAGENT      Total         4
UpdsRslocater        REPAGENT      Total         4

Options d’état

Chaque compteur peut avoir des informations d’état qui déterminent les opérations de calcul. Certains nécessitent également un traitement supplémentaire des données ou des informations provenant d’autres modules ou compteurs.

La tableau ci-dessous décrit les options d’état des compteurs. Un compteur peut n’avoir aucune option d’état ou, au contraire, en avoir plusieurs.

Etat des compteurs Description rs_helpcounter
CNT_INTRUSIVE Compteurs susceptibles d’avoir une incidence sur les performances de Replication Server intrusive
CNT_INTERNAL Compteurs utilisés par Replication Server et d’autres compteurs internal
CNT_SYSMON Compteurs utilisés par la commande admin statistics, sysmon sysmon
CNT_MUST_SAMPLE Compteurs qui échantillonnent des données même si l’échantillonnage n’est pas activé must_sample
CNT_NO_RESET Compteurs qui ne sont pas réinitialisés après l’initialisation no_reset
CNT_DURATION Compteurs qui mesurent la durée duration
CNT_RATE Compteurs qui mesurent la vitesse rate
CNT_KEEP_OLD Compteurs qui conservent à la fois la valeur courante et la valeur précédente keep_old
CNT_CONFIGURE Compteurs qui conservent la valeur d’exécution d’un paramètre de configuration de Replication Server. configure

Ainsi pour apercevoir tous les compteurs intrusifs (qui par définition peuvent détériorer les performances de Replication Server) :

exec rs_helpcounter intrusive

Dans l’exemple ci-dessous, les compteurs qui mesurent la vitesse sont affichés

exec rs_helpcounter rate

Display Name     Module Name    Counter Name
 -----           -----------   ----------------------------
DSIEBPSaverage   DSIEXEC       DSIEXEC: Average BPS rate
DSIEBPScurrent   DSIEXEC       DSIEXEC: Current BPS rate
DSIEBPSmax       DSIEXEC       DSIEXEC: Maximum BPS rate
NgTPSaverage     DSIEXEC       DSIEXEC: Average nongrouped TPS rate
NgTPScurrent     DSIEXEC       DSIEXEC: Current nongrouped TPS rate
NgTPSmax         DSIEXEC       DSIEXEC: Maximum nongrouped TPS rate
TPS_Average      DSIEXEC       DSIEXEC: Average grouped TPS rate
TPScurrent       DSIEXEC       DSIEXEC: Current grouped TPS rate
TPSmax           DSIEXEC       DSIEXEC: Maximum grouped TPS rate
BPSaverage       SQM           SQM: Average BPS rate
BPScurrent       SQM           SQM: Current BPS rate
BPSmax           SQM           SQM: Maximum BPS rate

Activation de l’échantillonnage et du vidage

Valeurs par défaut

Par défaut, l’échantillonnage est activé et la plupart des compteurs échantillonnent continuellement des données sans qu’il y ait une incidence sur les performances du serveur. Les compteurs qui risquent d’influer sur les performances (compteurs dépendants) sont par défaut désactivés.

Lorsque l’échantillonnage est activé, les compteurs enregistrent des données sans les stocker. Pour qu’il y ait stockage, il faut activer le vidage dans le RSSD.

Activation de l’échantillonnage des compteurs indépendants

L’échantillonnage des compteurs indépendants est activé ou desactivé avec la commande ci-dessous :

configure replication server set 'stats sampling' to {  'on'  |  'off'  }

La valeur par défaut est 'on' lors de l’installation d’un RS 12.5.

La procédure stockée rs_configure au niveau de la RSSD permet de visualiser la valeur pour le paramètre 'stats_sampling'

exec rs_configure 'stats_sampling'
go

Config Name     Config Value  Run Value       Description
----------      -----------   ----------       -----------------------
stats_sampling  on            on

Activation de l’échantillonnage des compteurs dépendants ou intrusifs

La plupart des compteurs échantillonnent des données avec un impact minime sur les performances de Replication Server. Ceux qui risquent d’influer sur les performances, appelés compteurs dépendants, sont activés séparément. Il est possible de les activer ou les désactiver sans toucher aux paramètres des compteurs indépendants.

Trois compteurs ont un impact majeur sur les performances

  • TranTimeLast : enregistre le temps en centièmes de seconde nécessaire au thread DSI pour traiter la dernière transaction pendant une exécution.
  • TranTimeMax : enregistre le temps maximal en centièmes de seconde nécessaire au thread DSI pour traiter une transaction pendant une exécution.
  • TranTimeAve : enregistre le temps moyen en centièmes de seconde nécessaire au thread DSI pour traiter une transaction pendant une exécution.

La désactivation de l’échantillonnage des compteurs dépendants ou intrusifs est lancé avec la commande ci-dessous :

admin stats_intrusive_counter, {'on'|'off'}

La valeur par défaut est 'off' lors de l’installation d’un RS 12.5.

La commande système RS admin statistics, flush_status indique si l’échantillonnage des compteurs intrusifs est activé :

admin statistics, flush_status

RepServer RSSD flushing status for SPARGLOSP02_RS ran on: 12/08/03 04:29:34PM

Rep Server Counters Flush Configuration.
----------------------------------------

Configuration_Name       Run_Value
------------------------ ----------
stats_daemon_sleep_time  600
stats_sampling           on
stats_flush_rssd         off
stats_reset_afterflush   on
stats_intrusive_counter  off

Vidage des compteurs vers la RSSD

Activation du vidage

La commande "configure replication server" active ou désactive le vidage au niveau de la RSSD

configure replication server set 'stats_flush_rssd' to {  'on'  |  'off'  }

La valeur par défaut est 'off'. Il est par ailleurs indispensable d’activer le vidage pour pouvoir configurer individuellement des modules, des connexions et des routes.

Deux commandes permettent de voir si le vidage est activé ou non :

- au niveau de la RSSD : rs_configure 'stats_flush_rssd'

exec rs_configure 'stats_flush_rssd'

Config Name       Config Value  Run Value
----------        -----------   --------------------
stats_flush_rssd  off           off

- au niveau du RS : admin statistics, flush_status

admin statistics, flush_status

RepServer RSSD flushing status for SPARGLOSP02_RS ran on: 12/08/03 04:29:34PM

Rep Server Counters Flush Configuration.
----------------------------------------

Configuration_Name              Run_Value
------------------------------  ----------
stats_daemon_sleep_time          600
stats_sampling                   on
stats_flush_rssd                 off
stats_reset_afterflush           on
stats_intrusive_counter          off

Activation de la réinitialisation après un vidage

La commande configure replication server avec l’option stats_reset_afterflush spécifie si les compteurs doivent être réinitialisés après le vidage.

configure replication server set 'stats_reset_afterflush' to {  'on'  |  'off'  }

La valeur par défaut est 'on'. Certains compteurs comme les compteurs de vitesse (rate) ayant l’état CNT_NO_RESET ne sont jamais réinitialisés.

Deux commandes permettent de voir si la réinitialisation après le vidage est activée ou non :

- au niveau de la RSSD : rs_configure 'stats_reset_afterflush'

exec rs_configure 'stats_reset_afterflush'


Config Name                  Config Value   Run Value
---------------------------- -------------- ----------
stats_reset_afterflush       on             on

- au niveau du RS : admin statistics, flush_status

admin statistics, flush_status

RepServer RSSD flushing status for SPARGLOSP02_RS ran on: 12/08/03 04:29:34PM

Rep Server Counters Flush Configuration.

Configuration_Name             Run_Value
------------------------------ ----------
stats_daemon_sleep_time        600
stats_sampling                 on
stats_flush_rssd               off
stats_reset_afterflush         on
stats_intrusive_counter        off

Définition de l’intervalle entre les vidages

Il est possible de définir un intervalle, en secondes, entre les vidages dans la RSSD. Cet intervalle peut être défini avec la commande configure replication server.

configure replication server set 'stats_daemon_sleep_time'to 'temps_de_veille'

La valeur par défaut est de 600 secondes. La valeur minimale est de 10 secondes et la valeur maximale est de 3 153 600 secondes (365 jours).

Deux commandes permettent de voir le temps de veille entre les vidages:

- au niveau de la RSSD : rs_configure 'stats_daemon_sleep_time'

exec rs_configure 'stats_daemon_sleep_time'

Config Name                  Config Value   Run Value
---------------------------- -------------- ----------
stats_daemon_sleep_time      600             600

- au niveau du RS : admin statistics, flush_status

admin statistics, flush_status

RepServer RSSD flushing status for SPARGLOSP02_RS ran on: 12/08/03 04:29:34PM

Rep Server Counters Flush Configuration.

Configuration_Name             Run_Value
------------------------------ ----------
stats_daemon_sleep_time        600
stats_sampling                 on
stats_flush_rssd               off
stats_reset_afterflush         on
stats_intrusive_counter        off

Configuration des modules, des connexions et des routes

Une hiérarchie des options de configuration limite le vidage des compteurs dans la RSSD. La commande admin stats_config_module permet de configurer le vidage pour un module spécifique ou pour la totalité d’entre deux.

Vidage pour les modules

Il est possible d’activer le vidage pour les compteurs d’un module individuellement ou pour tous les modules à l’aide de la commande admin stats_config_module.

admin stats_config_module, { nom_module | 'all_modules'}, { 'on'| 'off'}

Les noms de modules disponibles sont : dist, dsi, rsi, sqm, sqt, sts, repagent, cm ou sts.

Cette commande est la plus utile pour les modules sans thread ou qui n’ont qu’une instance de thread. Pour les modules multithread, il est plus facile de contrôler les threads activés en utilisant les commandes admin_stats_config_connectionet admin_stats_config_route (cette dernière commande ne sera pas vue dans la présente documentation car il n’existe pas d’exemple concret avec des routes).

Vidage pour les modules multithreads

Il est possible de configurer le vidage pour des threads individuellement ou pour des groupes de threads avec la commande admin stats_config_connection.

admin stats_config_connection ,
        { serveur_donnees, basededonnees | all_connections } ,
        { nom_module | all_modules }, ['inbound'| 'outbound'], { 'on'| 'off'}

Les paramètres sont les suivants :

  • serveur_donnees : nom du serveur de données
  • basededonnees : nom du base de données
  • all_connections : toutes les connexions à des bases de données
  • nom_module : dist, dsi, repagent, sqm, sqt
  • all_modules : modules DIST, DSI, REPAGENT, SQM et SQT.
  • inbound | outbound : identifie le SQM ou le SQT pour une file d’attente entrante ou sortante

Exemples:

admin stats_config_connection, all_connections, all_modules, on

- active le vidage pour toutes les combinaisons connexion - module.

admin stats_config_connection, 'SPARGLOSR01', 'prd_t', 'dsi', 'on'

- active le vidage pour le serveur SPARGLOSR01, pour la base de données prd_t et uniquement les compteurs concernant dsi.

La commande admin statistics, flush_status permet une fois de plus de visualiser ce qui est défini.

admin statistics, flush_status

RepServer RSSD flushing status for SPARGLOSP02_RS ran on: 12/08/03 04:29:34PM

Rep Server Counters Flush Configuration.

Configuration_Name             Run_Value
------------------------------ ----------
stats_daemon_sleep_time        600
stats_sampling                 on
stats_flush_rssd               off
stats_reset_afterflush         on
stats_intrusive_counter        off

Rep Server module flushing status.
----------------------------------

Module_Name Info                            Flush_Status
---------------------------------------------------------
CM                                          off
DIST                                        off
DSI        352 SPARGLOSR01.prd_t            on
DSI        351 SPARGLOSP01.prd_t            off
DSI        342 SPARGLOSR01.prd_swift_in_eb  off
...        ...        ...