Mise en œuvre d’Historical Server

Logo

Introduction

Pour pouvoir analyser et archiver les diverses évolutions d’un ou plusieurs serveur ASE et notamment en termes de performance, Historical Server complément de Monitor Server est l’outil parfait. Monitor Server permet d’accéder aisément aux compteurs internes de SQL Server et Historical Server est présent pour accumuler les résultats de Monitor Server au cours d’une période donnée. L’avantage essentiel de ces deux serveurs est le faible impact sur le SQL Server audité (moins de 5% de charge induite).

La mise en œuvre

Pour la mise en œuvre d’Historical Server il faut créer le fichier de démarrage comme ci-dessous (fichier RUN_%). Il faut donc lui indiquer un certains nombres de paramètres comme le répertoire où vont être consignées les informations par exemple.

#!/bin/sh
#
# Historical Server name: <server_hist>
# Error log path: /home/sybase/XXXXXXX/<server_hist>.log
#
/home/sybase/ASE/bin/histserver \
-S<server_hist> \
-I/home/sybase/interfaces \
-l/home/sybase/XXXXXXXXXX/<ficher_de_log>.log \
-D/home/sybase/XXXXXXXXXX/<répertoire_de_résultat> \

Historical Server comme tout autre serveur doit être référencé dans le fichier interfaces de Sybase avec un port d’écoute.

Le démarrage et la connexion

Pour démarrer historical server il faut utiliser la même syntaxe que n’importe quel démarrage d’un serveur SYBASE c’est-à-dire :

startserver -f <nom_du_fichier_RUN>

En ce qui concerne la connexion, utiliser la commande isql :

isql -U<login> -P<password> -S<server_hist>

Démarrer une session

La commande hs_create_recording_session établit une nouvelle session de consignation :

hs_create_recording_session nom_monitor_server,
   intervalle_échantillonnage_en_s,[nom_ répertoire_résultat,]
   [début_yy/mm/dd_hh:mm ,] [fin_yy/mm/dd,][niveau_protection,]
   [Gestion_erreur,] [script]

Exemple :

hs_create_recording_session test_mon, 30, /home/sybase/test_mon_rep,
   "01/01/2002 14:30", "01/01/2002 18:00", public, continue, no_script

Dans cet exemple, une session test_mon est créée avec un intervalle d’échantillonnage de 30 secondes, les résultats iront dans le répertoire /home/sybase/test_mon_rep, la période d’échantillonnage va du 01/01/2002 à 14 h 30 jusqu’à 18 h du même jour avec un niveau de protection publique. Le serveur ne s’arrêtera que s’il y a des erreurs fatales et ne génèrera pas de script.

Création des vues

La commande hs_create_view créé une vue :

hs_create_view nom_vue,
   nom_élément_données_1, stats_éléments_données_1
   [, nom_élément_données_2, stats_éléments_données_2,...]

Exemple :

hs_create_view vue_test_cache,
   "Page Hit Percent", "Value for Sample",
   "Procedure Hit Percent", "Value for Sample"

Dans cet exemple, une vue est créée avec le nom vue_test_cache, car on va observer le pourcentage d’utilisation réussie du cache de procédure et du cache de données.

Filtres et alarmes

Un filtre limite la portée des données collectées pour un élément de la vue. La commande hs_create_filter créé un filtre qui sera applicable sur une vue donnée :

hs_create_filter nom_vue, nom_élément_données,
   stats_éléments_données, type-filtre, spec_value

Exemple :

hs_create_filter process_bloque_test,"Time Waited on Lock","Value for Sample",
   range,low,10

Dans cet exemple, un filtre est créé sur la vue process_bloque_test. Ce filtre concerne le temps d’attente suite à une demande de positionnement d’un verrou, on ne prendra en compte que les temps supérieurs excédant 10 secondes.

Une alarme est déclenchée suite à un dépassement d’une valeur seuil pour un élément d’une vue. La commande hs_create_alarm suivante créé une alarme sur un élément d’une vue donnée :

hs_create_alarm nom_vue, nom_élément_données,
   stats_élément_données, action_alarme,
   données_action_alarme, valeur_alarme

Exemple :

hs_create_alarm process_bloque_test,
   "Time Waited on Lock",
   "Value for Sample",
   log, fichier_lock_log, 50

Dans cet exemple, une alarme ne se déclenche que si le temps d’attente atteint la valeur seuil de 50 secondes. Dans ce cas le dépassement sera consigné dans le fichier fichier_lock_log.

Initialisation d’une session

L’initialisation d’une session peut être réalisée que si cette dernière session existe et qu’au moins une vue a été créée. Ce n’est qu’à partir de l’initialisation que la session de consignation peut démarrer. La commande hs_initiate_recording initialise une session :

hs_initiate_recording

Il est à noter qu’une fois la session initialisée, il n’est plus possible de rajouter ni vue, ni filtre ni alarme.

Terminer une session

La session peut être interrompue pendant sa définition, ou en annulant la session avant qu’elle ne débute ou encore en terminant la session en cours d’exécution. La commande hs_terminate_recording_session termine la session :

hs_terminate_recording session id [, option_suppression]

Exemple :

hs_terminate_recording 3, delete

Dans cet exemple, la session de consignation active n°3 se termine et il y a suppression de tous les fichiers associés à cette même session.

Autres commandes

La commande hs_list niveau [, restriction] recense les informations sur les sessions passées et courantes.

La commande hs_status option affiche les informations d’états.

La commande hs_shutdown arrête le serveur Historical Server.