Partager via


Configurer la mémoire persistante (PMEM) pour SQL Server sur Windows

Cet article décrit comment configurer la mémoire persistante (PMEM) pour SQL Server 2016 (13.x) et les versions ultérieures sur Windows.

Vue d'ensemble

SQL Server 2019 (15.x) comprend un certain nombre de fonctionnalités de base de données en mémoire qui s’appuient sur la mémoire PMEM. Ce document décrit les étapes nécessaires à la configuration de la mémoire persistante pour SQL Server sur Windows.

Notes

Le terme enlightment (« illumination ») a été introduit pour décrire le concept d’utiliser un système de fichiers prenant en charge la mémoire persistante. Les extensions d’accès direct (DAX) au système de fichiers NTFS permettent de mapper en mémoire des fichiers de l’espace noyau vers l’espace utilisateur. Lorsqu’un fichier est mappé en mémoire dans l’espace utilisateur, l’application peut émettre des instructions de chargement/stockage directement sur le fichier mappé en mémoire, en contournant complètement la pile d’E/S du noyau. Il s’agit d’une méthode d’accès aux fichiers « éveillés à la présence d’un environnement virtualisé ». Depuis Windows Server 2022, cette fonctionnalité d’état d’éveil à la présence d’un environnement virtualisé est disponible sur les plateformes Windows et Linux.

Configurer les appareils

Créer des espaces de noms pour les appareils PMEM

Dans Windows, utilisez l’utilitaire ipmctl pour configurer les disques PMEM (appelés espaces de noms dans Linux). Vous trouverez des instructions spécifiques à Intel® Optane™ ici. Des informations sur le matériel PMEM pris en charge sur différentes versions de Windows sont disponibles dans Comprendre et déployer la mémoire persistante. Les disques PMEM doivent être entrelacés sur les NVDIMM PMEM et peuvent fournir différents types d’accès d’espace utilisateur aux régions de la mémoire sur l’appareil. Pour plus d’informations sur les ensembles entrelacés dans Windows, consultez Présentation et déploiement de la mémoire PMEM.

Disques PMEM

Utiliser PowerShell pour examiner les disques PMEM

#Get information about all physical disks
Get-PhysicalDisk

#Review logical configuration of PMEM disks
Get-PmemDisk

#Get information about PMEM devices
Get-PmemPhysicalDevice

#Get information about unused PMEM regions
Get-PmemUnusedRegion

BTT et DAX

Par défaut, New-PmemDisk utilise le mode FSDax souhaité. L’atomicité est définie sur la valeur par défaut de None plutôt que sur BlockTranslationTable. Du point de vue de la prise en charge, BTT doit être activé pour le journal des transactions afin de reproduire la sémantique du mode secteur requis. Bien que l’utilisation de BTT avec NTFS soit généralement recommandée, BTT n’est pas recommandé lors de l’utilisation de pages de grande taille, telles que celles requises pour DAX.

Get-PmemUnusedRegion | New-PmemDisk -Atomicity None

Mise en forme du ou des volumes NTFS


#Initialize PMEM Disk(s)
Get-PmemDisk | Initialize-Disk -PartitionStyle GPT

#Create New Partition(s) and Format the Volume(s) with DAX Mode
Get-PmemDisk[0] | `
New-Partition `
    -UseMaximumSize `
    -AssignDriveLetter `
    -Offset 2097152 `
    -Alignment 2097152 | `
Format-Volume `
    -FileSystem NTFS `
    -IsDAX:$True `
    -AllocationUnitSize 2097152

Alignement et décalage des fichiers

Vérifier le ou les décalages de partition

Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl

Vérifiez l’alignement d’un fichier particulier à l’aide de fsutil. La taille du fichier doit être un modulo de 2 Mo.

fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf

Remplacement de PMEM

Réapprovisionner des disques PMEM

Chaque fois qu’un module PMEM est remplacé, il doit être réapprovisionné.

Notes

La suppression d’un disque PMEM entraîne la perte des données sur ce disque.

# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false

Effacer les modules PMEM

Pour effacer définitivement les données des modules PMEM, utilisez la cmdlet PowerShell Initialize-PmemPhysicalDevice.

# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false

Voir aussi

Pour découvrir d’autres cmdlets permettant de manipuler la mémoire PMEM, consultez PersistentMemory dans la documentation de référence de PowerShell.