sp_sysmon, cache wizard - ASE 12.5.1

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 :

sp_sysmon '00:00:59' , 'cache wizard' , '7', 'default data cache'
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 :
  • soit un filtre sur le nom du cache pour lequel on désire les informations
  • soit un filtre sur le nom des objets dans tous les caches avec une chaîne de caractères de critères dans laquelle le caractère % est autorisé


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