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 Nonede 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.