Configuración de la memoria persistente (PMEM) para SQL Server en Windows
En este artículo se describe cómo configurar la memoria persistente (PMEM) para SQL Server 2016 (13.x) y superior en Windows.
Información general
SQL Server 2019 (15.x) tiene varias características de base de datos en memoria que se basan en la memoria persistente. En este documento se describen los pasos necesarios para configurar la memoria persistente para SQL Server en Windows.
Nota
El término habilitación se incluyó para transmitir el concepto de trabajar con un sistema de archivos con reconocimiento de memoria persistente. Las extensiones de acceso directo (DAX) al sistema de archivos NTFS proporcionan la capacidad de memoria de los archivos de mapa del espacio del kernel al espacio del usuario. Cuando un archivo está asignado a la memoria asignada al espacio de usuario, la aplicación puede emitir instrucciones de carga o almacenamiento directamente en el archivo asignado de memoria, pasando por completo la pila de E/S del kernel. Esto se considera un método de acceso a archivos "optimizado". A partir de Windows Server 2022, esta funcionalidad de iluminación está disponible en plataformas Windows y Linux.
Configuración de los dispositivos
Creación de espacios de nombres para dispositivos PMEM
En Windows, use la ipmctl
utilidad para configurar los discos PMEM (denominados espacios de nombres en Linux). Puede encontrar instrucciones específicas de Intel® Optane™ aquí. Los detalles sobre el hardware PMEM compatible en diferentes versiones de Windows se encuentran en Descripción e implementación de memoria persistente. Los discos PMEM deberían intercalarse en NVDIMMs de PMEM y pueden proporcionar diferentes tipos de acceso de espacio de usuario a las regiones de memoria del dispositivo. Para obtener más información sobre los conjuntos intercalados en Windows, consulte Descripción e implementación de una memoria persistente.
Discos PMEM
Uso de PowerShell para examinar discos 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 y DAX
De forma predeterminada, New-PmemDisk
usará el modo deseado FSDax
. La atomicidad se establece en el valor predeterminado de en lugar None
de BlockTranslationTable
. Desde una perspectiva de soporte técnico, BTT debe estar habilitado para el registro de transacciones, para imitar la semántica del modo de sector requerido. Aunque generalmente se recomienda el uso de BTT con NTFS, no se recomienda BTT al usar páginas grandes, como se requiere para DAX.
Get-PmemUnusedRegion | New-PmemDisk -Atomicity None
Aplicar formato a los volúmenes 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
Alineación y desplazamiento de archivos
Comprobar los desplazamientos de partición
Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl
Compruebe la alineación del archivo de un archivo determinado mediante fsutil
. Nuestro tamaño de archivo debe ser un módulo de 2 MB.
fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf
Reemplazar PMEM
Volver a aprovisionar discos PMEM
Cada vez que se reemplaza un módulo PMEM, debe volver a aprovisionarse.
Nota
La eliminación de un disco PMEM provocará la pérdida de datos en ese disco.
# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false
Borrar módulos PMEM
Para borrar permanentemente los datos de los módulos PMEM, use el cmdlet Initialize-PmemPhysicalDevice
de PowerShell.
# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false
Consulte también
Para ver otros cmdlets para manipular PMEM, consulte PersistentMemory en la documentación de referencia de PowerShell.