Montée en charge avec SQL Server 2005: bonnes pratiques & performances 3/26/2017 3:57 PM Montée en charge avec SQL Server 2005: bonnes pratiques & performances Jérôme Mas Technical Consultant, WIE Hewlett Packard Company Jerome.Mas@hp.com 1 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Introduction Architectures des serveurs Windows et NUMA 3/26/2017 3:57 PM Agenda Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
[Course Title] [Module Title] WIE et Microsoft WIE – équipe d’architectes seniors qui travaille avec Microsoft depuis plus de 10 ans: Optimisation du noyau pour les architectures Itanium Optimisation de la génération du code pour les compilateurs Itanium Etude des futures architectures Accès aux codes sources de Windows WIE - équipe responsable de la Performance et Benchmark sur le campus Microsoft En charge de la publication des benchmarks Windows / SQL Participation au travail d’amélioration des capacités de “Scale-Up” de Windows Accès aux codes source de Microsoft SQL en vue d’améliorer la scalabilité de SQL sur les serveurs hauts de gamme [Rev. # or date]
Impacts sur la perfomance
3/26/2017 3:57 PM Introduction Pour les configurations “High-End” le serveur et le stockage ne peuvent plus être considérés comme des boites noires Serveurs: Symmetric Multi Processing Non Uniform Memory Access Architecture (Bus I/O, FSB, …) Stockage: Contrôleurs Cache Nombre de disques Virtualisation © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
SMP et NUMA: terminologie 3/26/2017 3:57 PM SMP et NUMA: terminologie Symmetric Multi Processor Non Uniform Memory Access Memoire interleave Memoire locale CPU Memory Memory NODE CPU Memory Controller CPU CPU HYPER TRANSPORT Memory Memory CROSS BAR CPU CPU CPU CPU CPU Memory Memory Memory CPU CPU CPU CPU CPU CPU Memory CPU Memory CPU Memory Memory Memory CPU/MEM CPU CPU CPU CELL © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Architecture cellulaire 3/26/2017 3:57 PM Architecture cellulaire Complexe de Superdome Partition 1 Cell (4P/Mem/IO) Cell (4P/Mem/IO) Cell (4P/Mem/IO) Cell (4P/Mem/IO) XBar XBar Cell (4P/Mem/IO) Cell (4P/Mem/IO) Cell (4P/Mem/IO) Cell (4P/Mem/IO) Cell (4P/Mem/IO) Cell (4P/Mem/IO) CPU Memory Memory Cell (4P/Mem/IO) Cell (4P/Mem/IO) XBar XBar CPU Cell / Memory Controller To XBar Cell (4P/Mem/IO) Cell (4P/Mem/IO) CPU Cell (4P/Mem/IO) Cell (4P/Mem/IO) CPU Cell Accès à la mémoire locale: de meilleurs temps de latence quand le processor accède à la mémoire de la cellule. Accès à la mémoire distante: Les temps de latence sont supérieurs quand un processeur accède à la mémoire disponible dans une cellule différente. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Architecture d’une partition 3/26/2017 3:57 PM Architecture d’une partition Demonstration Complexe CrossBar Noeud ou cellule Chassis I/O Partition Stockage © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Windows Server 2003 NUMA API 3/26/2017 3:57 PM Windows Server 2003 NUMA API La table ACPI SRAT définit les attributs NUMA du serveur. Relation {Processeur:Noeud} membership Relation {Mémoire:Noeud} membership Note: pas d’affinité pour les E/S {I/O:Node} NT user mode NUMA APIs GetNumaHighestNodeNumber GetNumaProcessorNode pour un processeur donné GetNumaNodeProcessorMask pour un nœud donné GetNumaAvailableMemory pour un nœud donné © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Tester le comportement NUMA de Windows 3/26/2017 3:57 PM Tester le comportement NUMA de Windows for (i=0; i<1000000000000;i++) { malloc(10000000); } WSRM GetNumaAvailableMemory Cell 1 Cell 0 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Quoi de nouveaux concernant Windows/SQL2005 sur serveurs NUMA? 3/26/2017 3:57 PM Quoi de nouveaux concernant Windows/SQL2005 sur serveurs NUMA? Cell (4P/Mem/IO) Superdome Complex Partition 1 XBar Partition Windows 2003 (32 et 64bit) est “NUMA aware” NUMA API SQL Server 2005 and NUMA Détection du mode NUMA dans l’Errorlog Un “buffer cache” par nœud (cellule) Une thread Lazywriter par nœud (cellule) Affinité Client/nœud : un client peut être associé à un nœud (cellule) Affinité des threads à un nœud Répartition de la charge sur les processeurs du nœud SuperLatches: validé automatiquement sur les serveurs à plus de 32 processeurs SQL recopie une page sur tous les nœuds NUMA (après y avoir accède un certain nombre de fois) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Affinité TCP/IP avec SQL 2005 3/26/2017 3:57 PM Affinité TCP/IP avec SQL 2005 Un serveur d’application peut être associé à un groupe de processeurs en fonction du port TCP/IP utilisé. Stockage Serveur de base de données Partition SQL Noeud IP 1/port IP 2/port IP 3/port Serveurs d’application © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Configuration de l’affinité client 3/26/2017 3:57 PM Configuration de l’affinité client ERRORLOG 2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2002] 2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2001] 2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2000] Port Masque © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Demonstration SQL Server 2005 et Soft NUMA Moteur SQL Server 2005 3/26/2017 3:57 PM SQL Server 2005 et Soft NUMA Partition Cellule Moteur SQL Server 2005 Noeud logique SQL Listeners Demonstration Reporting Checkpoint © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/26/2017 3:57 PM SQL Server 2005 et Soft NUMA HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node0] "CpuMask"=hex:03 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node1] "CpuMask"=hex:0c [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node2] "CpuMask"=hex:30 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
SQL Server 2005 and Soft NUMA 3/26/2017 3:57 PM SQL Server 2005 and Soft NUMA Pour chaque “Soft node”, SQL crée un ”I/O completion port” pour gérer les E/S réseaux Disponible également sur serveur SMP Les “Soft Nodes” sont définies au niveau du serveur (pas de l’instance) Un “Soft Node” ne peut pas être défini sur plusieurs “Hard Nodes” Un « Soft Node » considère locale la mémoire disponible dans le « Hard Node » © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
SQL Server et Affinité CPU 3/26/2017 3:57 PM SQL Server et Affinité CPU Affinité de processeur (CPU Affinity) Moyen de contrôler le nombre de processeurs (thread) assigné à SQL Server SQL Server 2005 supporte l’ajout et la suppression de processeur en ligne Utiliser des processeurs Appartenant au même nœud pour éviter l’accès à la mémoire distante Appartenant au même « chip » (processeur à plusieurs cœurs) Limiter la mémoire (max memory) à la mémoire disponible dans les nœuds choisis Attention à l’énumeration des threads © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Limiter la memoire aux noeuds choisis 3/26/2017 3:57 PM Limiter la memoire aux noeuds choisis Le “Buffer Pool” peut utiliser des “foreign pages”. La mémoire distante peut être utilisée si la mémoire local est non disponible. Attention le “CPU affinity” ne limite pas l’utilisation de la mémoire aux nœuds spécifiés “Max server” doit être configuré Database server SQL Partition 16 Gb 16 Gb 16 Gb Noeud SQL Instance Max server memory : 16Gb © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Seulement disponible avec le HardNUMA 3/26/2017 3:57 PM Performance counters Seulement disponible avec le HardNUMA SQL Server Buffer Node counters Database pages Number of pages in the buffer pool on this node with database content. Foreign pages Number of pages that come from a different NUMA node. Free pages Total number of free pages on this node. Page life expectancy Number of seconds a page will stay in the buffer pool on this node without references. Stolen pages Number of pages used for miscellaneous server purposes (stolen from the buffer pool) on this node. Target pages Ideal number of pages in the buffer pool on this node. Total pages Total number of committed pages in the buffer pool on this node. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Accès local vs Accès distant 3/26/2017 3:57 PM Accès local vs Accès distant Environnement de test Configuration du serveur 4 Cellules (Nœuds) – 32 cœur – HT on (64 threads) 128 Gb (32 Gb par nœud) Base de données de tests Le chargement de la table est forcé dans la mémoire de la cellule 0. Requête: « select (count(*)) from table » © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Options de consolidation [Course Title] [Module Title] Options de consolidation Scenario 1: Consolidation de bases de donnees Une instance de l’OS, une instance de SQL, plusieurs bases de donnees Utilisation maximale des ressources Scenario 2: Consolidation d’instance SQL Une instance de l’OS, plusieurs instances de SQL - Plus de souplesse et de contrôle des ressources CPUs et mémoires. Operations de maintenance effectuées par instance Scenario 3: Consolidation de serveurs Plusieurs instances de l’OS, plusieurs instances de SQL - Même modèle que le scenario 1 avec option de repartionnement des ressources. Utilisation Isolation Windows 2003 Server (24P) Payroll Server Windows 2003 Server (64P) Windows 2003 Server (64P) Windows (8P) Manufacturing DB Marketing DB Payroll DB SQL 2005 Server Marketing Server Manufacturing Instance Marketing Instance Windows 2003 Server (32P) Manufacturing Server Payroll Instance Enterprise Storage & Backup [Rev. # or date]
Gestion des resources avec SQL Serveur 2005 [Course Title] [Module Title] Gestion des resources avec SQL Serveur 2005 Ajout de mémoire à chaud La modification des paramètres mémoire ne nécessite plus un redémarrage de l’instance Ajout et suppression de processeurs (CPU Affinity) à la volée Support du Multi-instances: jusqu’a 50 (24 avec MSCS) Windows System Resource Manager (Microsoft) Pay Per Use (HP Integrity) [Rev. # or date]
Performance et consolidation 3/26/2017 3:57 PM Performance et consolidation Limiter le nombre d’instances Une instance par profil de charge OLTP – OLAP « Max degree of parallelism » Windows System Resource Manager Affinité de CPU (Attention aux licences) « Lock pages in memory » pour éviter le page out Configurer “Max Memory” pour laisser suffisamment de mémoire pour Windows (1 to 4 GB) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Introduction Stockage 3/26/2017 3:57 PM Introduction Stockage Un composant essentiel Une histoire de compromis : Performance, Redondance et Cout Performance Haute disponibilité Cout © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
A consider pour la configuration du stockage 3/26/2017 3:57 PM A consider pour la configuration du stockage Profile des I/Os Aléatoire ou séquentiel Taux d’accès simultanés Surtout pour le transactionnel Débit Transaction Log Backup & Restore Microsoft SQL Server™ database – Accès aléatoire en lecture écriture 8KB Aléatoire pour les data files (8KB par I/O) Séquentiel pour les Transaction Logs (taille des I/Os variable) 25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Caracterisation d’une charge SQL 3/26/2017 3:57 PM Caracterisation d’une charge SQL Un charge I/O se caractérise: Ratio Lecture/Ecriture Ratio Accès séquentiel/Accès aléatoire La taille des block transférés Il y a quelques grandes familles de profils de charge On connait les capacités de notre stockage (ou on les mesure!!!) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
StorageWorks OLTP tuning 3/26/2017 3:57 PM StorageWorks OLTP tuning Dimensionner avec une approche performance et non capacité DB I/O pattern, Log replay, TempDB, Snapshot, Backup Isoler les « Database files » et les « Transaction Log » Eviter les profiles d’ accès aléatoires et séquentiels sur le même group d’axes Utiliser plusieurs « SQL data files » et striper avec les « file groups » Paramétrage des drivers HBA (la valeur par default du « Queue Length » est trop basse) Attention si l’unité de stockage est partagé Eviter le RAID 5 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Sizing: Determiner le nombre d’IOs par seconde 3/26/2017 3:57 PM Sizing: Determiner le nombre d’IOs par seconde TotalIOPS = 1/[1 –( RaidPenatly-1/RaidPenalty*PercentRead) ] * (NumberOfDisks / RAIDPenalty) * DriveMaxIOPS Exemple: “Disk Group” de 116 disques 15K (VRAID-1) 50-50 Read/Write: Total IOPS = 1/[1 – ¼ ] * (116 / 2) * 170 IOPs Total IOPS =13,147 pour le « disk group « Ou une moyenne de 113 IOPS par disque. Attention 170 <> 113 ;-) RAID 1: RaidPenalty=2 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
EVA virtualization concept 3/26/2017 3:57 PM EVA virtualization concept Les disques physiques sont organisés dans des pools “Disk Groups” Les “Virtual Disks” sont caractérisés par: Un « Disk Group » Une taille (GB) Un niveau de RAID Un “Virtual Disk” (Vdisk) est présenté à un serveur en tant que LUN vdisk2 vdisk1 SAN Enterprise Virtual Array Disk Group Vdisk 2 (Vraid 5) Vdisk 1 (Vraid 1) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Extension d’un volume en ligne 3/26/2017 3:57 PM Extension d’un volume en ligne Symptômes possible: Le nombre insuffisant d’axes limite le nombre d’I/O Plus d’espace disponible + Solution: … ajouter des disques VRAID 0 VRAID 5 VRAID 0 VRAID 1 Free space ( virtual space = 4 Disk) VRAID 0 VRAID 5 VRAID 1 30 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
SQL & Storage Best Practices 3/26/2017 3:57 PM SQL & Storage Best Practices Utiliser des configurations simples Avoir une bonne connaissance de la charge Sizing Utiliser les outils fournis par les vendeurs Qualifier, tester et valider SQLIO SQLIOSim © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/26/2017 3:57 PM What’s next? … Longhorn La couche de gestion du stockage a connaissance de l’architecture NUMA Affinité d’interruption. Les pilotes des HBA pourront spécifier les CPUs à utiliser pour la gestion des interruptions.. Amélioration des APIs NUMA notamment pour l’allocation de mémoire dans un nœud spécifié -VirtualAllocExNuma - Node I/O chassis Node © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Resume SQL Server 2005 est prêt pour les solutions d’entreprise 3/26/2017 3:57 PM Resume SQL Server 2005 est prêt pour les solutions d’entreprise SQL Server 2005 est le moteur de base de données le plus performant sur serveurs HP (TPC-C) HP est très impliqué dans le tuning et l’optimisation de SQL Server 2005 sur les serveurs “high end” Avoir une bonne connaissance du hardware est recommandée pour le tuning avancé © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/26/2017 3:57 PM © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. 34 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.