Condividi tramite


Configurare la memoria persistente (PMEM) per SQL Server su Windows

Questo articolo descrive come configurare la memoria persistente (PMEM) per SQL Server 2016 (13.x) e versioni successive in Windows.

Panoramica

SQL Server 2019 (15.x) include diverse funzionalità del database in memoria che si basano sulla memoria persistente. Questo documento illustra i passaggi necessari per configurare la memoria persistente per SQL Server in Windows.

Nota

Il termine Enlightenment è stato introdotto per comunicare il concetto di un file system consapevole della memoria persistente. Le estensioni DAX per il file system NTFS forniscono la capacità di mappare i file in memoria dallo spazio kernel allo spazio utente. Quando un file è mappato alla memoria nello spazio utente, l'applicazione può inviare istruzioni di caricamento/archiviazione direttamente al file mappato alla memoria, ignorando completamente lo stack di I/O del kernel. Questo è considerato un metodo "illuminato" di accesso ai file. A partire da Windows Server 2022, questa funzionalità di riconoscimento dei dati è disponibile nelle piattaforme Windows e Linux.

Configurare i dispositivi

Creare namespace per i dispositivi PMEM

In Windows, usare l'utilità ipmctl per configurare i dischi PMEM (detti namespace in Linux). È possibile trovare istruzioni specifiche di Intel® Optane™ qui. I dettagli sull'hardware PMEM supportato in diverse versioni di Windows sono disponibili in Informazioni e distribuzione della memoria persistente. I dischi PMEM devono essere interlacciati tra i NVDIMM PMEM e possono fornire diversi tipi di accesso allo spazio utente per le aree di memoria sul dispositivo. Per altre informazioni sui set interleaved in Windows, vedere Comprendere e distribuire la memoria persistente.

Dischi PMEM

Usare PowerShell per esaminare i dischi 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 e DAX

Per impostazione predefinita, New-PmemDisk userà la modalità di FSDax desiderata. Atomicità è impostata sul valore predefinito di None anziché BlockTranslationTable. Dal punto di vista del supporto, BTT deve essere abilitato per il log delle transazioni, per simulare la semantica della modalità settore richiesta. Sebbene l'uso di BTT con NTFS sia generalmente consigliato, BTT non è consigliato quando si usano pagine di grandi dimensioni, ad esempio per DAX.

Get-PmemUnusedRegion | New-PmemDisk -Atomicity None

Formattazione dei volumi 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

Allineamento e offset dei file

Controllare gli offset della partizione

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

Verificare l'allineamento di un file particolare usando fsutil. La dimensione del file deve essere un multiplo di 2 MB.

fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf

Sostituzione di PMEM

Riprovvisionare i dischi PMEM

Ogni volta che viene sostituito un modulo PMEM, è necessario eseguirne nuovamente il provisioning.

Nota

La rimozione di un disco PMEM comporterà la perdita di dati su tale disco.

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

Cancellare i moduli PMEM

Per cancellare definitivamente i dati dai moduli PMEM, usare il cmdlet di PowerShell Initialize-PmemPhysicalDevice.

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

Vedere anche

Per altri cmdlet per la modifica di PMEM, vedere PersistentMemory nella documentazione di riferimento di PowerShell.