Configuration et monitoring SSAS 
SQLSaturday 323 – Paris 2014
Rejoignez la communauté SQL Server 
Webcasts, Conférences, Afterworks 
Session donnée lors du 
http://GUSS.pro 
@GUSS_FRAN...
Sponsors Gold 
SQLSaturday 323 – Paris 2014
Sponsors Silver et Bronze 
SQLSaturday 323 – Paris 2014
SQLSaturday 323 – Paris 2014
SQLSaturday 323 – Paris 2014
Plan 
 Le processeur 
 La mémoire 
 Conclusion 
SQLSaturday 323 – Paris 2014
Le processeur – les threads 
 Principe du thread pool 
 Utilisés pour 
 Exécuter une commande (parser) 
 Les calculs (...
Le processeur – les threads 
 Thread pool, I/O Completion Port 
Thread pool 
Job 
Low 
Normal 
High 
5 - Retourne 
3- Fou...
Le processeur – les threads 
 Un exemple d’exécution 
MDX 
Query Execution Pool 
1 threads 
SQLSaturday 323 – Paris 2014 ...
Le processeur – les threads 
 Environnement multi-utilisateurs 
Requête A 
Scan de 30 
segments 
Requête B 
En attente 
d...
Le processeur – configuration de l’instance 
2005 
 Process MaxThreads 
 64 
 Query MaxThreads 
 10 
SQLSaturday 323 –...
Le processeur – monitoring 
 Outils 
 Performance Monitor 
 SQL Profiler 
 XEvents (depuis SSAS 2012) 
 DMV 
 Autres...
Le processeur – monitoring 
 Les compteurs de performance 
 Busy, Idle, QueueLength 
 Short, Long, Query, IO Process, N...
Le processeur – Interro 
 ThreadQueueLength>0 
& IdleThreads=0 
 ThreadQueueLength>0 
& IdleThreads>0 
&CPU<>100% 
SQLSa...
La mémoire : Le prix à payer 
 Le Memory Manager de SSAS gère sa mémoire 
selon un Modèle économique 
 Pour chaque struc...
La mémoire : Les types 
SSAS scinde sa 
mémoire en 2 types : 
 Shrinkable : contient 
des objets qui 
peuvent être nettoy...
La mémoire : Les limites 
 Elles sont définies dans la configuration de 
l’instance SSAS (msmdsrv.ini) 
 Exprimées en % ...
La mémoire : LowMemoryLimit 
 Seuil en dessous duquel, la mémoire est 
allouée en fonction des besoins 
 Un fois atteint...
La mémoire : TotalMemoryLimit 
 Seuil à partir duquel le processus de 
nettoyage est en mode crise 
 Prix = sa valeur ma...
La mémoire : HardMemoryLimit 
 Seuil à partir duquel le processus de 
nettoyage passe en Mode « sauve-qui-peut » 
 Dans ...
La mémoire : La face cachée 
 Le Memory Manager de SSAS gère 
uniquement la mémoire du processus 
msmdsrv.exe 
 Les fich...
Mémoire : résumé de la situation 
SQLSaturday 323 – Paris 2014
Mémoire : Les compteurs du PerfMon 
SQLSaturday 323 – Paris 2014 
 PerfMon permet de 
monitorer des 
compteurs des entrèe...
Monitorer et tester (ou inversement) 
AS Performance WorkBench 
 Projet sur Codeplex 
https://asperfwb.codeplex.com/ 
 P...
Collecter les données de monitoring 
 Depuis SSAS 2008 
existent les DMV… 
…mais c’est pas très 
simple et funky à utilis...
Microsoft SQL Server 2008 Analysis 
Services Unleashed 
Irina Gorbach, Alexander Berger, Edward Melomed 
http://tinyurl.co...
Prochain SlideShare
Chargement dans…5
×

SQLSaturday Paris 2014 - Monitoring et configuration SSAS

521 vues

Publié le

Avant la mise en production d’une base SSAS, il faut s’attarder sur la question du paramétrage de l’instance. Nous présenterons donc les principales optimisations de configuration d’une instance SSAS que l’on déterminera à partir de relevés issus d’un monitoring efficace. Nous attacherons une importance particulière au modèle de gestions des threads. Il faut avoir une relative bonne connaissance des modes de fonctionnement du moteur AS (SE et FE) afin de pouvoir appréhender cette session. Session présentée lors du SQLSaturday Paris 2014

Publié dans : Données & analyses
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
521
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Pool de thread :
    - Par instance SSAS, donc dans le fichier de configuration
    - Parallélisation des tâches
    - Dépendant du processeur et de la mémoire (max 640 CPU : limitation Windows Server)
    Utilisé pour :
    - exécuter une commande
    - Les calculs : définition des sous espaces (subcube), optimisation de l’espace (NonEmpty), plan d’exécution
    - Processing : lecture des données sur le disque, indexation, agrégations
  • MinThreads : nombre de thread à l’initialisation du thread pool

    MaxThreads : nombre de threads max, mais peut être dépassé (exemple de cas de threads alloués mais bloqués et considérés comme non actifs)

    Concurrency : détermine un algorithme qui clacul le nombre de threads max actifs par CPU

    PriorityRatio : détermine un ratio d’exécution des job de niveau de priorité inférieur

    Une allocation de threads = 1Mo

    Cas des threads crées alors que leur nombre excède le MaxThreads : temps d’allocation plus long (AS préfère attendre la désallocation d’autres threads plutôt que de surcharger le CPU et provoquer des  changements de contexte)
  • Préciser que le FE est mono thread

    Evoquer les astuces qui permettent de simuler le multi threads

    CoordinatorExecutionMode :
    - valeur par défaut -4 ce qui veut dire 4 threads par core donc 4 scanne de partitions (valable pour les queries et le processing)
    - 0 : SSAS décide selon un algo interne
    - valeur positive : nombre de thread pour l’instance
    CoordinatorQueryMaxThreads :
    - valeur par défaut 16 ce qui indique 16 threads de lecture de segment par partition
  • SQLSaturday Paris 2014 - Monitoring et configuration SSAS

    1. 1. Configuration et monitoring SSAS SQLSaturday 323 – Paris 2014
    2. 2. Rejoignez la communauté SQL Server Webcasts, Conférences, Afterworks Session donnée lors du http://GUSS.pro @GUSS_FRANCE /GUSS /GUSS.FR
    3. 3. Sponsors Gold SQLSaturday 323 – Paris 2014
    4. 4. Sponsors Silver et Bronze SQLSaturday 323 – Paris 2014
    5. 5. SQLSaturday 323 – Paris 2014
    6. 6. SQLSaturday 323 – Paris 2014
    7. 7. Plan  Le processeur  La mémoire  Conclusion SQLSaturday 323 – Paris 2014
    8. 8. Le processeur – les threads  Principe du thread pool  Utilisés pour  Exécuter une commande (parser)  Les calculs (FE)  Accéder aux données (SE)  Types de thread pool  Short command parsing  Long command parsing  Query execution  IO Process (depuis SSAS 2012)  Processing SQLSaturday 323 – Paris 2014
    9. 9. Le processeur – les threads  Thread pool, I/O Completion Port Thread pool Job Low Normal High 5 - Retourne 3- Fournit SQLSaturday 323 – Paris 2014 I/O Completion 1 - Demande Port 4 - Utilise 2 – En file Propriétés SSAS importantes  MinThreads  MaxThreads  Concurrency  PriorityRatio
    10. 10. Le processeur – les threads  Un exemple d’exécution MDX Query Execution Pool 1 threads SQLSaturday 323 – Paris 2014 Propriétés SSAS importantes  CoordinatorQueryMaxThreads  CoordinatorExecutionMode  CoordinatorQueryMaxThreads  CoordinatorBuildMaxThreads IO Process Pool Formula Engine Partitions Segments Storage Engine CoordinatorExecutionMode CoordinatorQueryMaxThreads
    11. 11. Le processeur – les threads  Environnement multi-utilisateurs Requête A Scan de 30 segments Requête B En attente de threads Requête C Requête … SQLSaturday 323 – Paris 2014 Propriétés SSAS importantes  CoordinatorQueryBalancingFactor  CoordinatorQueryBoostPriorityLevel
    12. 12. Le processeur – configuration de l’instance 2005  Process MaxThreads  64  Query MaxThreads  10 SQLSaturday 323 – Paris 2014 < 2005  Process MaxThreads  64 ou 10x cores  Query MaxThreads  10 ou 2x cores Toutes versions  CoordinatorQueryBalancingFactor  De -1 à 1  CoordinatorQueryBoostPriorityLevel  De 3 à 0
    13. 13. Le processeur – monitoring  Outils  Performance Monitor  SQL Profiler  XEvents (depuis SSAS 2012)  DMV  Autres : SQL Sentry, SCOM SQLSaturday 323 – Paris 2014
    14. 14. Le processeur – monitoring  Les compteurs de performance  Busy, Idle, QueueLength  Short, Long, Query, IO Process, Non IO Process Pools  % Processor Time  Proc Indexes / Current Partitions SQLSaturday 323 – Paris 2014
    15. 15. Le processeur – Interro  ThreadQueueLength>0 & IdleThreads=0  ThreadQueueLength>0 & IdleThreads>0 &CPU<>100% SQLSaturday 323 – Paris 2014
    16. 16. La mémoire : Le prix à payer  Le Memory Manager de SSAS gère sa mémoire selon un Modèle économique  Pour chaque structure de donnée il y a fixation d’un Prix à payer / KB de mémoire … au début c’est gratuit jusqu’à un certain niveau  Ensuite, plus l’espace mémoire est occupé plus le prix du loyer augmente  Si une structure de données est utilisée pour une commande elle gagne un revenu  Tant que son compte est créditeur elle peut payer son loyer, sinon elle est vidée de la mémoire SQLSaturday 323 – Paris 2014
    17. 17. La mémoire : Les types SSAS scinde sa mémoire en 2 types :  Shrinkable : contient des objets qui peuvent être nettoyés  Nonshrinkable : contient des objets non concernés par le processus de nettoyage SQLSaturday 323 – Paris 2014
    18. 18. La mémoire : Les limites  Elles sont définies dans la configuration de l’instance SSAS (msmdsrv.ini)  Exprimées en % par défaut / en octet si > 100  Ce sont les seuils de tolérances qui servent à activer/désactiver le processus de nettoyage de la mémoire  Le prix varie en fonction de l’évolution de la mémoire entre ces bornes  Il tient aussi compte d’un seuil de prix intérmédiaire à partir duquel il augmente plus vite (MidMemoryPrice) SQLSaturday 323 – Paris 2014
    19. 19. La mémoire : LowMemoryLimit  Seuil en dessous duquel, la mémoire est allouée en fonction des besoins  Un fois atteint, le prix augmente en partant de zéro et les taxes sont prélevées  le processus de nettoyage démarre et libère de l’espace mémoire en supprimant des objets shrinkable dont le revenu est nul NB : Un nettoyage agressif peut ramener la mémoire largement en dessous de celui-ci SQLSaturday 323 – Paris 2014
    20. 20. La mémoire : TotalMemoryLimit  Seuil à partir duquel le processus de nettoyage est en mode crise  Prix = sa valeur max (HighMemoryPrice)  Passage des threads de nettoyage en priorité haute. Ils bloquent les autres threads tant que la mémoire utilisée n'est pas redescendue sous le seuil  Les objets shrinkables doivent libérer la mémoire même si leur solde est > 0 SQLSaturday 323 – Paris 2014
    21. 21. La mémoire : HardMemoryLimit  Seuil à partir duquel le processus de nettoyage passe en Mode « sauve-qui-peut »  Dans un premier temps : Vidage de l'ensemble de la mémoire Shrinkable  Si ce n'est pas suffisant : Annulation des commandes de traitement et des requêtes  Valeur par défaut = (TotalMemoryLimit + min (system physical memory, system total available virtual memory))/2. SQLSaturday 323 – Paris 2014
    22. 22. La mémoire : La face cachée  Le Memory Manager de SSAS gère uniquement la mémoire du processus msmdsrv.exe  Les fichiers de données peuvent être aussi dans le WindowsFileSystemCache et monter plus rapidement dans la mémoire de SSAS en cas de besoin  La propriété LimitSystemFileCacheSizeMB permet de limiter l’utilisation de ce cache mémoire  Prendre en compte aussi le StandbyCache SQLSaturday 323 – Paris 2014
    23. 23. Mémoire : résumé de la situation SQLSaturday 323 – Paris 2014
    24. 24. Mémoire : Les compteurs du PerfMon SQLSaturday 323 – Paris 2014  PerfMon permet de monitorer des compteurs des entrèes:  Mémoire (système)  MSOLAP$Instance (SSAS)  Processus msmdsrv (SSAS) Ni pratique, ni ergonomique
    25. 25. Monitorer et tester (ou inversement) AS Performance WorkBench  Projet sur Codeplex https://asperfwb.codeplex.com/  Permet de surveiller plusieurs compteurs  Permet aussi de lancer des requêtes pour simuler un test de charge simple SQLSaturday 323 – Paris 2014
    26. 26. Collecter les données de monitoring  Depuis SSAS 2008 existent les DMV… …mais c’est pas très simple et funky à utiliser  Projet Codexplex ResMon = base AS dediée à la collecte de ces données C’est pas plus funky… …mais au moins c’est plus simple à mettre en place  http://tinyurl.com/kxyq92w SQLSaturday 323 – Paris 2014 …à vous de jouer pour faire mieux que moi avec Excel…
    27. 27. Microsoft SQL Server 2008 Analysis Services Unleashed Irina Gorbach, Alexander Berger, Edward Melomed http://tinyurl.com/nsv2scu Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide Thomas Kejser and Denny Lee http://tinyurl.com/ohx87q2 SQLSaturday 323 – Paris 2014

    ×