Introduction
Avec Sybase 12.5.1, un nouveau paragraphe d’une grande importance et qui manquait cruellement est apparu dans la sortie standard de la procédure stockée de monitoring sp_sysmon
: le paragraphe "cache wizard
". Ce nouveau paragraphe permet de monitorer et configurer les caches de données pour des performances optimales.
Le paragraphe "cache wizard
" va permettre d’identifier :
- Les Hot objects (objets les plus accédés)
- L’usage du cache et des pools de buffer
- Les hits ratio dans les caches et les pools de buffer jusqu’au niveau de l’objet
- L’efficacité des larges E/S
- L’efficacité des APF (Asynchroned Prefetch).
- L’occupation par les différents objets du cache.
La sortie du paragraphe "cache wizard
" par la procédure sp_sysmon
n’est effectuée que si l’option "cache wizard
" est explicitement demandée.
Ce paragraphe permet enfin de dimensionner et monitorer correctement les caches nommés.
Pré-requis pour le "Cache Wizard"
sp_sysmon
extrait les informations pour le "cache wizard
" à partir des tables de monitoring et des compteurs monitor : ce qui implique l’installation des tables de monitoring.
Installation des tables de monitoring
Pour installer les tables de monitoring, il est impératif de s’assurer que la variable globale @@servername
est correctement renseigné :
select @@servername
Si cette dernière variable globale n’est pas renseignée, utiliser la procédure sp_addserver
pour ajouter le serveur local
:
exec sp_addserver <ASE servername>,local
exec sp_addserver CGC,local
La variable globale @@servername
n’est renseignée qu’après un redémarrage du serveur ASE.
Pour l’installation des tables de monitoring, le serveur loopback
doit être également implémenté dans sysservers, si @@servername
n’est pas encore renseignée (redémarrage non effectué), le nom du serveur local peut être spécifié directement :
exec sp_addserver loopback, null, @@servername | <ASE ServerName>
Le rôle mon_role
doit ensuite être donné au login sa :
grant role mon_role to sa
L’installation des tables de monitoring mon% est ensuite réalisée grâce au script installmontables
dans le répertoire $SYBASE/$SYBASE_ASE/scripts/installmontables
:
$SYBASE/$SYBASE_OCS/bin/isql –Usa –i$SYBASE/$SYBASE_ASE/scripts/installmontables –P<pwd>
Paramètres de configuration nécessaires pour le paragraphe "cache wizard"
Les paramètres de configuration ci-dessous doivent être activés :
exec sp_configure 'enable monitoring', 1
exec sp_configure 'per object statistics active',1
exec sp_configure 'max SQL text monitored', 255
Le paramètre de configuration "max SQL text monitored
" est statique et suppose un redémarrage du serveur.
Syntaxe de sp_sysmon avec "cache wizard"
La syntaxe générale d’utilisation de sp_sysmon
pour le paragraphe 'cache wizard
' est la suivante :
exec sp_sysmon begin_sample
exec sp_sysmon { end_sample | interval } [, section [, topN [, filter] ] ]
Pour la paragraphe 'cache wizard
', section = 'cache wizard
'
Exemple :
exec sp_sysmon '00:00:59' , 'cache wizard' , '7', 'default data cache'
exec sp_sysmon '00:00:59' , 'cache wizard' , '-2', 'emp%'
topN |
permet de spécifier le nombre
d’objets occupant le cache à afficher en mode croissant ou
décroissant sur les lectures logiques (LReads ).
Si topN est < 0 : sp_sysmon affiche le top des N objets avec les
lectures logiques croissantes
Si topN est > 0 : sp_sysmon affiche le top des N objets avec les
lectures logiques décroissantes |
filter
|
permet d’indiquer deux filtres possibles :
|
Exemple de sortie 'cache wizard' avec la procédure sp_sysmon
================================================================================
Cache Wizard
================================================================================
------------------
default data cache
------------------
Run Size : 8.00 Mb Usage% : 31.91
LR/sec : 52.31 PR/sec : 0.00 Hit%: 100.00
Cache Partitions: 1 Spinlock Contention%: 0.00
Buffer Pool Information
--------------------------------------------------------------------------------
IO Size Wash Size Run Size APF% LR/sec PR/sec Hit% APF-Eff% Usage%
------- ---------- ----------- ------ -------- -------- ------ -------- ------
2 Kb 1638 Kb 8.00 Mb 10.00 52.31 0.00 100.00 0.00 31.91
Object Statistics
--------------------------------------------------------------------------------
Object LR/sec PR/sec Hit% Obj_Cached% Cache_Occp%
------------------------------- ------- ------- ------ ----------- -----------
tempdb.dbo.tempcachedobjstats 13.38 0.00 100.00 37.50 0.15
tempdb.dbo.tempobjstats 3.23 0.00 100.00 37.50 0.07
pubs2.dbo.titles 0.15 0.00 100.00 20.00 0.07
tempdb.dbo.tempcachestats 0.15 0.00 100.00 25.00 0.05
pubs2.dbo.titles.titleind 0.08 0.00 100.00 6.25 0.02
tempdb.dbo.tempbufpoolstats 0.08 0.00 100.00 25.00 0.05
Object Obj Size Size in Cache
------------------------------- ----------- -------------
tempdb.dbo.tempcachedobjstats 32 Kb 12 Kb
tempdb.dbo.tempobjstats 16 Kb 6 Kb
pubs2.dbo.titles 30 Kb 6 Kb
tempdb.dbo.tempcachestats 16 Kb 4 Kb
pubs2.dbo.titles.titleind 32 Kb 2 Kb
tempdb.dbo.tempbufpoolstats 16 Kb 4 Kb
LEGEND
------
LR/sec number of logical reads per second, i.e. sum of cache & disk reads
PR/sec number of physical reads per second i.e. disk reads
Run Size size of cache or buffer pool in Kilobytes
Cache Partitions number of cache partitions
Spinlock Contention% Percentage spinlock contention for the cache
Hit% ratio of hits to total searches
Usage% ratio of pages referenced to Run Size
Wash Size wash size of buffer pool in Kilobytes
APF% asynchronous prefetch % for this buffer pool
APF-Eff% Ratio of buffers found in cache and brought in because of APF to the number of APF disk reads performed
Object combination of db, owner, object and index name
Obj Size size of the object in Kilobytes
Size in Cache size occupied in cache in Kilobytes at the end of sample
Obj_Cached% Ratio of 'Size in Cache' to 'Obj Size'
Cache_Occp% Ratio of 'Size in Cache' to 'Run Size' of cache