Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S'applique à :SQL Server
Introduite dans SQL Server 2014 (12.x), l'extension du pool de mémoires tampons permet l'intégration transparente d'une extension de mémoire vive non volatile (c'est-à-dire d'un disque SSD) dans le pool de mémoires tampons Moteur de base de données pour améliorer le débit d'E/S de façon significative. L’extension du pool de mémoires tampons n’est pas disponible dans chaque édition de SQL Server. Pour plus d’informations, consultez Éditions et fonctionnalités prises en charge de SQL Server 2022.
Avantages de l'extension du pool de mémoires tampons
L'objectif principal d'une base de données SQL Server est de stocker et de récupérer les données, l'utilisation intensive d'E/S sur disque est donc une caractéristique centrale du moteur de base de données. Étant donné que les opérations d'E/S sur disque peuvent consommer beaucoup de ressources et durer relativement longtemps, SQL Server s'attache à rendre ces opérations efficaces. Le pool de mémoires tampons fait office de source principale d'allocation mémoire de SQL Server. La gestion des tampons joue un rôle essentiel pour parvenir à cette efficacité. Le composant de gestion des tampons comprend deux mécanismes : le gestionnaire de tampons qui permet d’accéder aux pages de la base de données et de les mettre à jour, ainsi que le pool de mémoires tampons, qui permet de réduire les opérations d’E/S du fichier de la base de données.
Les pages de données et d'index sont lues sur le disque dans le pool de mémoires tampons et les pages modifiées (également appelées « pages de modifications ») sont écrites sur le disque. Lorsque la mémoire sur les points de contrôle du serveur et de la base de données est sollicitée, les pages de modifications actives dans le cache des tampons sont supprimées du cache et écrites sur des disques mécaniques, puis relues dans le cache. Ces opérations d’E/S sont généralement de petites lectures et écritures aléatoires sur l’ordre de 4 Ko à 16 Ko de données. Les E/S de ce type entraînent des appels fréquents qui entrent en concurrence pour les contentions de disque mécanique, augmentent la latence des E/S et réduisent le débit global des E/S du système.
L'approche habituelle pour résoudre ces goulots d'étranglement des E/S est d'ajouter plus de DRAM, ou bien, des axes SAS hautes performances. Bien que ces options soient utiles, elles présentent des inconvénients significatifs : la DRAM est plus coûteuse que les lecteurs de stockage de données, et l’ajout de broches augmente les dépenses en capital dans l’acquisition matérielle et augmente les coûts opérationnels en augmentant la consommation d’alimentation et en augmentant la probabilité de défaillance des composants.
La fonctionnalité d'extension du pool de mémoires tampons étend le cache du pool avec le stockage non volatile (généralement, les disques SSD). Grâce à cette extension, le pool de mémoires tampons peut gérer une plus vaste plage de travail de la base de données, ce qui force la pagination des E/S entre la mémoire RAM et les disques SSD. Cela décharge efficacement les E/S aléatoires de petite taille des disques mécaniques vers les disques SSD. En raison de la plus faible latence et des meilleures performances des E/S aléatoires fournies par les disques SSD, l'extension du pool de mémoires tampons améliore considérablement le débit des E/S.
La fonctionnalité d'extension du pool de mémoires tampons présente les avantages suivants :
Débit des E/S aléatoires augmenté
Latence des E/S réduite
Débit de transaction augmenté
Performances améliorées en lecture avec un plus grand pool hybride de mémoires tampons
Architecture de mise en cache capable de tirer parti des disques mémoire à faible coût d'aujourd'hui et de demain
Concepts
Les termes suivants s'appliquent aux fonctionnalités de l'extension du pool de mémoires tampons.
| Terme | Description |
|---|---|
| Disque SSD (Solid-State Drive) | Les disques SSD stockent les données en mémoire vive (RAM) de manière persistante. Pour plus d’informations, consultez la définition wikipédia. |
| Tampon | Dans SQL Server, une mémoire tampon est une page de 8 Ko en mémoire, de la même taille qu’une page de données ou d’index. Ainsi, le cache des tampons est divisé en pages de 8 Ko. Une page reste dans le cache des tampons jusqu'à ce que le gestionnaire de tampons ait besoin de la zone de mémoire tampon pour lire davantage de données. Les données sont réécrites sur le disque uniquement si elles sont modifiées. Ces pages modifiées en mémoire sont appelées « pages de modifications ». Une page est propre lorsqu’elle équivaut à son image de base de données sur le disque. Les données dans le cache de tampons peuvent être modifiées plusieurs fois avant leur réécriture sur le disque. |
| Pool de mémoires tampons | Également appelé cache de mémoire tampon. Le pool de mémoires tampons est une ressource globale partagée par toutes les bases de données pour leurs pages de données mises en cache. La taille maximale et minimale du cache du pool de mémoires tampons est déterminée au démarrage ou lorsque l’instance de SQL Server est reconfigurée dynamiquement avec sp_configure. Cette valeur détermine le nombre maximal de pages pouvant être mises en cache dans le pool de mémoires tampons à tout moment dans l'instance en cours d'exécution. La mémoire maximale pouvant être validée par l’extension du pool de mémoires tampons peut être limitée par les autres applications s’exécutant sur l’ordinateur, au cas où ces applications créent une pression significative de la mémoire. |
| Checkpoint | Un point de contrôle crée un point de référence connu et fiable à partir duquel le Moteur de base de données peut, lors d'une récupération sur incident ou arrêt inattendu, commencer à appliquer les modifications contenues dans le journal des transactions. Un point de contrôle écrit les pages de modifications et les informations du journal des transactions de la mémoire vers le disque et enregistre également les informations sur le journal des transactions. Pour plus d’informations, consultez Points de contrôle de base de données (SQL Server). |
Détails
Le stockage sur disque SSD est utilisé comme une extension du sous-système de mémoire au lieu du sous-système de stockage sur disque. Autrement dit, le fichier d'extension du pool de mémoires tampons permet au gestionnaire du pool d'utiliser une mémoire DRAM et NAND-Flash pour maintenir un plus grand pool de pages faiblement sollicitées dans la mémoire vive non volatile soutenue par les disques SSD. Cela crée une hiérarchie de mise en cache à plusieurs niveaux : avec le niveau 1 (L1) correspondant à la DRAM, et le niveau 2 (L2) correspondant au fichier d'extension du pool de mémoires tampons sur le disque SSD. Seules les pages nettoyées sont écrites dans le cache L2, ce qui vous permet d'assurer la sécurité de données. Le gestionnaire de tampons gère le déplacement des pages nettoyées entre les caches L1 et L2.
L'illustration suivante présente une vue d'ensemble de l'architecture du pool de mémoires tampons par rapport aux autres composants de SQL Server .
Une fois activée, l'extension du pool de mémoires tampons spécifie la taille et le chemin d'accès du fichier de mise en cache du pool de mémoires tampons sur le disque SSD. Ce fichier est une extension contiguë du stockage sur le disque SSD, et est configuré statiquement au démarrage de l'instance de SQL Server. La modification des paramètres de configuration des fichiers est uniquement possible lorsque la fonctionnalité d'extension du pool de mémoires tampons est désactivée. Dans ce cas, tous les paramètres de configuration associés sont supprimés du Registre. Le fichier d'extension du pool de mémoires tampons est supprimé en cas d'arrêt de l'instance de SQL Server.
Limitations de la capacité
L’édition SQL Server Enterprise permet une taille maximale d’extension du pool de mémoires tampons de 32 fois la valeur de max server memory (MB).
L’édition SQL Server Standard permet une taille maximale d’extension du pool de mémoires tampons de quatre fois la valeur de max server memory (MB).
Meilleures pratiques
Nous vous recommandons d'appliquer ces bonnes pratiques.
Après avoir activé l’extension du pool de mémoires tampons pour la première fois, vous devez redémarrer l’instance SQL Server pour obtenir les avantages de performances maximales.
Définissez l’extension du pool de mémoires tampons de sorte que le rapport entre la taille de la mémoire physique (
max server memory (MB)) et la taille de l’extension du pool de mémoires tampons de 1:16 ou moins. Un ratio inférieur dans la plage de 1:4 à 1:8 peut être optimal. Pour plus d’informations sur la définition de l’optionmax server memory (MB), consultez les options de configuration de la mémoire du serveur.Testez l'extension du pool de mémoires tampons entièrement avant d'implémenter votre solution dans un environnement de production. Une fois en production, évitez d’apporter des modifications de configuration au fichier ou de désactiver la fonctionnalité. Ces activités peuvent avoir un effet négatif sur les performances du serveur, car le pool de mémoires tampons est considérablement réduit en taille lorsque la fonctionnalité est désactivée. En cas de désactivation, la mémoire utilisée pour prendre en charge la fonctionnalité n’est pas récupérée tant que l’instance de SQL Server n’est pas redémarrée. Toutefois, si la fonctionnalité est réactivée, la mémoire est réutilisée sans redémarrer l’instance.
Retour des informations concernant l'extension du pool de mémoires tampons
Utilisez les vues de gestion dynamique suivantes pour afficher la configuration de l'extension du pool de mémoires tampons et obtenir des informations sur les pages de données dans l'extension.
Les compteurs de performances sont disponibles dans l'objet Gestionnaire de tampons de SQL Server pour assurer le suivi des pages de données dans le fichier d'extension du pool de mémoires tampons. Pour plus d'informations, consultez la rubrique sur les compteurs de performances de l'extension du pool de mémoires tampons.
Les XEvents suivants sont disponibles.
| XEvent | Description | Paramètres |
|---|---|---|
sqlserver.buffer_pool_extension_pages_written |
Se déclenche lorsqu'une page ou un groupe de pages est supprimé du pool de mémoires tampons et est écrit dans le fichier d'extension du pool de mémoires tampons. | number_pagefirst_page_idfirst_page_offsetinitiator_numa_node_id |
sqlserver.buffer_pool_extension_pages_read |
Se déclenche lorsqu'une page est lue à partir du fichier d'extension du pool de mémoires tampons vers le pool de mémoires tampon. | number_pagefirst_page_idfirst_page_offsetinitiator_numa_node_id |
sqlserver.buffer_pool_extension_pages_evicted |
Se déclenche lorsqu'une page est supprimée du fichier d'extension du pool de mémoires tampons. | number_pagefirst_page_idfirst_page_offsetinitiator_numa_node_id |
sqlserver.buffer_pool_eviction_thresholds_recalculated |
Se déclenche lorsque le seuil d'éviction est calculé. | warm_thresholdcold_thresholdpages_bypassed_evictioneviction_bypass_reasoneviction_bypass_reason_description |
Tâches associées
| Description de la tâche | Article |
|---|---|
| Activer et configurer l'extension du pool de mémoires tampons | ALTER SERVER CONFIGURATION |
| Modifier la configuration de l'extension du pool de mémoires tampons | ALTER SERVER CONFIGURATION |
| Afficher la configuration de l'extension du pool de mémoires tampons | sys.dm_os_buffer_pool_extension_configuration |
| Surveiller l'extension du pool de mémoires tampons |
sys.dm_os_buffer_descriptors SQL Server, objet Buffer Manager |