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.