Настройка постоянной памяти (PMEM) для SQL Server в Windows
В этой статье описывается настройка постоянной памяти (PMEM) для SQL Server 2016 (13.x) и выше в Windows.
SQL Server 2019 (15.x) имеет несколько функций базы данных в памяти, использующих постоянную память. В этом документе рассматриваются действия, необходимые для настройки постоянной памяти для SQL Server в Windows.
Примечание
Термин осознание был введен для передачи концепции работы с файловой системой, поддерживающей постоянную память. Расширения прямого доступа (DAX) к файловой системе NTFS предоставляют возможность сопоставлять файлы памяти из пространства ядра в пространство пользователя. Если файл сопоставляется с пользовательским пространством, приложение может выдавать инструкции по загрузке и хранению непосредственно в сопоставленном файле памяти, обходя стек операций ввода-вывода ядра полностью. Это считается "просвещенным" методом доступа к файлам. Начиная с Windows Server 2022, эта просветительная функциональность доступна как на платформах Windows, так и на платформах Linux.
В Windows используйте программу ipmctl
для настройки дисков PMEM (называемых пространствами имен в Linux). Здесь можно найти инструкции , специфические для Intel® Optane™,. Сведения о поддерживаемом оборудовании PMEM в разных версиях Windows находятся в разделе понятие и использованиепостоянной памяти. Диски PMEM должны быть размещены чередующимся образом между модулями PMEM NVDIMM и могут предоставлять различные типы пользовательского доступа к областям памяти на устройстве. Для получения дополнительной информации о чередуемых наборах в Windows см. Разберитесь и разверните постоянную память.
#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
По умолчанию New-PmemDisk
будет использовать нужный режим FSDax
. Значение атомарности установлено по умолчанию на None
, а не на BlockTranslationTable
. С точки зрения поддержки для журнала транзакций необходимо включить BTT, чтобы имитировать семантику требуемого режима сектора. Хотя использование BTT с NTFS обычно рекомендуется, BTT не рекомендуется при работе с большими страницами, такими как требуемые для DAX.
Get-PmemUnusedRegion | New-PmemDisk -Atomicity None
#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
Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl
Проверьте выравнивание конкретного файла с помощью fsutil
. Размер файла должен быть кратным 2 МБ.
fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf
При каждой замене модуля PMEM его необходимо переподготовить.
Примечание
Удаление диска PMEM приведет к потере данных на этом диске.
# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false
Чтобы окончательно удалить данные из модулей PMEM, используйте командлет PowerShell Initialize-PmemPhysicalDevice
.
# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false
Другие командлеты для управления PMEM см. в разделе PersistentMemory справочной документации по PowerShell.