Прочитать на английском

Поделиться через


Настройка постоянной памяти (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.

Настройка устройств

Создание пространств имен для устройств PMEM

В Windows используйте программу ipmctl для настройки дисков PMEM (называемых пространствами имен в Linux). Здесь можно найти инструкции , специфические для Intel® Optane™,. Сведения о поддерживаемом оборудовании PMEM в разных версиях Windows находятся в разделе понятие и использованиепостоянной памяти. Диски PMEM должны быть размещены чередующимся образом между модулями PMEM NVDIMM и могут предоставлять различные типы пользовательского доступа к областям памяти на устройстве. Для получения дополнительной информации о чередуемых наборах в Windows см. Разберитесь и разверните постоянную память.

Диски PMEM

Использование PowerShell для проверки дисков 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 и DAX

По умолчанию New-PmemDisk будет использовать нужный режим FSDax. Значение атомарности установлено по умолчанию на None, а не на BlockTranslationTable. С точки зрения поддержки для журнала транзакций необходимо включить BTT, чтобы имитировать семантику требуемого режима сектора. Хотя использование BTT с NTFS обычно рекомендуется, BTT не рекомендуется при работе с большими страницами, такими как требуемые для DAX.

Get-PmemUnusedRegion | New-PmemDisk -Atomicity None

Форматирование томов 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

Выравнивание и смещение файлов

Проверка смещения секций

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

Проверьте выравнивание конкретного файла с помощью fsutil. Размер файла должен быть кратным 2 МБ.

fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf

Замена PMEM

Повторная подготовка дисков PMEM

При каждой замене модуля PMEM его необходимо переподготовить.

Примечание

Удаление диска PMEM приведет к потере данных на этом диске.

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

Удаление модулей PMEM

Чтобы окончательно удалить данные из модулей PMEM, используйте командлет PowerShell Initialize-PmemPhysicalDevice.

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

См. также

Другие командлеты для управления PMEM см. в разделе PersistentMemory справочной документации по PowerShell.