Было замечено, что на сервере резервного копирования с ОС Windows Server 2022 и System Center 2022 DPM, и, как следствие, активным использованием Modern Backup Storage (MBS) поверх Resilient File System (ReFS), с небольшим объёмом ОЗУ (16GB) периодически по ночам во время активных задач резервного копирования система стала падать.
График утилизации ОЗУ показал, что в моменты падения уровень утилизации памяти подходит к критическим значениям.
Проблема с исчерпанием памяти при использовании связки 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
После настройки потребуется перезагрузка сервера.
В нашем случае указанный тюнинг сократил количество внезапных перезагрузок, однако, к сожалению, не решил эту проблему полностью.
Дополнительные источники информации:
Добавить комментарий