Compartir por


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 versiones posteriores en Windows.

Información general

SQL Server 2019 (15.x) tiene varias características de base de datos en memoria que dependen de 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 ilustración se introdujo para transmitir el concepto de trabajar con un sistema de archivos compatible con 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 de 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 a la 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). Para obtener más información, vea Cómo Provisionar Intel® Optane™ DC Persistent Memory para Invitados KVM/QEMU. Los detalles sobre el hardware PMEM compatible en diferentes versiones de Windows se encuentran en Descripción e implementación de la memoria persistente. Los discos PMEM deben intercalarse entre PMEM NVDIMMs 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 la 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 . Atomicidad se establece en el valor predeterminado de en lugar de NoneBlockTranslationTable. 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 necesaria. Aunque el uso de BTT con NTFS se recomienda generalmente, no se recomienda BTT al usar páginas grandes, como es necesario para DAX.

Get-PmemUnusedRegion | New-PmemDisk -Atomicity None

Dar formato a los volúmenes NTFS

#Initialize PMEM disks
Get-PmemDisk | Initialize-Disk -PartitionStyle GPT

#Create new partitions and format the volumes with DAX Mode
$partition = @{ UseMaximumSize = $true; AssignDriveLetter = $true; Offset = 2097152; Alignment = 2097152 }
$volume = @{ FileSystem = 'NTFS'; IsDAX = $true; AllocationUnitSize = 2097152 }
Get-PmemDisk[0] | New-Partition @partition | Format-Volume @volume

Alineación y desplazamiento de archivos

Comprobación de los desplazamientos de partición

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

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, se debe volver a aprovisionar.

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 Initialize-PmemPhysicalDevice cmdlet de PowerShell.

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