System Center 2022 DPM на Windows Server 2022 : Исчерпание оперативной памяти и аварийные перезагрузки. Тюнинг ReFS

System Center 2022 DPM on Windows Server 2022: RAM Exhaustion and Crashes. Tuning ReFSБыло замечено, что на сервере резервного копирования с ОС Windows Server 2022 и System Center 2022 DPM, и, как следствие, активным использованием Modern Backup Storage (MBS) поверх Resilient File System (ReFS), с небольшим объёмом ОЗУ (16GB) периодически по ночам во время активных задач резервного копирования система стала падать.

График утилизации ОЗУ показал, что в моменты падения уровень утилизации памяти подходит к критическим значениям.

Memory Exhaustion and Crashes on DPM server with MBS over ReFS

Проблема с исчерпанием памяти при использовании связки ReFS+DPM тянется со времён Windows Server 2016 и по моему опыту нет однозначного явного решения этой проблемы. Но есть некоторые рекомендации по тюнингу настроек, связанных с утилизацией памяти при использовании ReFS

Статья с рекомендациями для Windows Server 2016: Update resolves heavy memory use in ReFS on a computer that is running Windows Server 2016

Значения по умолчанию в Windows Server 2022 & System Center 2022 DPM и рекомендуемые значения:

HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\
RefsEnableLargeWorkingSetTrim не существует 1
RefsNumberOfChunksToTrim не существует 32
RefsDisableCachedPins не существует 1
RefsProcessedDeleteQueueEntryCountThreshold не существует 2048
RefsEnableInlineTrim 1 1
HKLM:\SYSTEM\CurrentControlSet\Services\Disk\
TimeOutValue 65 120
HKLM:\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage\
DuplicateExtentBatchSizeinMB 100 100

Параметры, где дефолтное значение совпадает с рекомендуемым указаны исключительно в качестве справочной информации, так как на практике можно встретить уже "тюнингованные" системы, где иногда для проверки приходится вернуть значения к исходному состоянию.

Настройки ReFS влияют на поведение тримминга, кэша и inline операций:

  • RefsEnableLargeWorkingSetTrim - включает/выключает "агрессивный" трим ReFS.
  • RefsNumberOfChunksToTrim - сколько чанков ReFS будет триммить за раз.
  • RefsDisableCachedPins - отключает кэширование "pins" (оптимизация записи/чтения).
  • RefsProcessedDeleteQueueEntryCountThreshold - порог обработки очереди удалённых блоков.
  • RefsEnableInlineTrim - управляет inline trim (TRIM сразу при удалении).

Настройки драйвера Disk.sys:

  • TimeOutValue (в секундах) - время ожидания отклика диска до того, как Windows считает его "неотвечающим".

Настройки System Center DPM:

  • DuplicateExtentBatchSizeinMB - размер пакета (в мегабайтах) для операций с дубликатами extent’ов в DPM. Влияет на производительность deduplication / оптимизации хранения.

Пример PowerShell-команд для сбора информации об установленных значениях реестра:

Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsEnableLargeWorkingSetTrim, RefsNumberOfChunksToTrim, RefsDisableCachedPins, RefsProcessedDeleteQueueEntryCountThreshold, RefsEnableInlineTrim | FL RefsEnableLargeWorkingSetTrim, RefsNumberOfChunksToTrim, RefsDisableCachedPins, RefsProcessedDeleteQueueEntryCountThreshold, RefsEnableInlineTrim
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Disk\" -Name TimeOutValue | FL TimeOutValue
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage\" -Name DuplicateExtentBatchSizeinMB | FL DuplicateExtentBatchSizeinMB

Пример команд настройки указанных значений реестра:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsEnableLargeWorkingSetTrim -PropertyType DWord -Value 1 -Verbose
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsNumberOfChunksToTrim -PropertyType DWord -Value 32 -Verbose
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsDisableCachedPins -PropertyType DWord -Value 1 -Verbose
NeW-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsProcessedDeleteQueueEntryCountThreshold -PropertyType DWord -Value 2048 -Verbose
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsEnableInlineTrim -Value 1 -Verbose
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Disk\" -Name TimeOutValue -Value 120 -Verbose
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage\" -Name DuplicateExtentBatchSizeinMB -Value 100 -Verbose

После настройки потребуется перезагрузка сервера.

В нашем случае указанный тюнинг сократил количество внезапных перезагрузок, однако, к сожалению, не решил эту проблему полностью.

Дополнительные источники информации:

Добавить комментарий