Freigeben über


FIX: Hohe Speicherauslastung in ReFS unter Windows

Dieser Artikel enthält eine Lösung für Speicherdruck- und Leistungsprobleme, die im Resilient File System (ReFS) in Windows auftreten.

Gilt für: Windows 10 – alle Editionen, Windows Server 2016, Windows Server 2019
Ursprüngliche KB-Nummer: 4016173

Problembeschreibung

Sie bemerken eine hohe Speicherauslastung auf einem Computer mit Windows 10, Windows Server 2016, Windows Server 2019, Windows Server, 1903 oder Windows Server, Version 1909.

Ursache

Um eine größere Resilienz für seine Metadaten bereitzustellen, verwendet das Resilient File System (ReFS) in Windows Server 2016 Zuweisungs-on-Write-Semantik für alle Metadatenupdates. Dies bedeutet, dass ReFS niemals direkte Aktualisierungen an Metadaten vorgibt. Stattdessen werden alle Schreibvorgänge in neu zugeordnete Regionen erstellt.

Durch Zuweisungen beim Schreiben verursacht ReFS jedoch mehr Metadaten-E/A für neue Bereiche des Volumes als schreibgeschützte Dateisysteme. Darüber hinaus verwendet ReFS Blockzwischenspeicherungslogik, um die Metadaten im RAM zwischenzuspeichern. Es ist nicht so ressourceneffizient wie Dateizwischenspeicherungslogik.

Gemeinsam blockiert die ReFS-Zwischenspeicherungslogik und die Zuordnungs-on-Write-Semantik reFS-Metadatendatenströme zu einer großen Größe. ReFS verwendet den Cache-Manager, um die Metadatendatenströme zu erstellen, und der Cache-Manager hebt die Zuordnung inaktiver Ansichten lazily auf. In manchen Situationen führt diese faule Entwappung dazu, dass der aktive Arbeitssatz auf dem Server vergrößert wird. Dadurch entsteht ein Arbeitsspeicherdruck, der zu einer schlechten Leistung führen kann.

Lösung

Dieses Problem wird im kumulativen Update 4013429 behoben, das am 14. März 2017 veröffentlicht wurde. Das Update führt drei tunbare Registrierungsparameter ein.

Kumulatives Update 4013429 ist über Windows Update verfügbar. Sie können sie auch direkt über den Microsoft Update-Katalog herunterladen.

Weitere Informationen finden Sie unter 14. März 2017 – KB4013429 (Betriebssystembuild 14393.953)

Festlegen der tunablen Parameter

Dieses Update stellt drei tunbare Registrierungsparameter bereit, um große ReFS-Metadatenstreams zu adressieren. Sie können die folgenden optionalen Methoden verwenden, um die Parameter festzulegen. Diese Parameter können in jeder Kombination verwendet werden, da sie sich nicht funktionell überlappen.

Wichtig

  • Ein Neustart ist erforderlich, damit diese Parameteränderungen wirksam werden.
  • Diese Parameter müssen für jeden Knoten eines Failoverclusters konsistent festgelegt werden.

Option 1:

Diese Option bewirkt, dass ReFS bei jedem Prüfpunkt eine vollständige MM-Zuordnung aller Metadatenstreams versucht. Diese Option erzeugt das erwartete Ergebnis nur, wenn das Volume im Leerlauf ist und keine zugeordneten Seiten enthält.

Geben Sie die angegebenen Werte im folgenden Unterschlüssel an:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
Wertname: RefsEnableLargeWorkingSetTrim
Set RefsEnableLargeWorkingSetTrim = 1
Werttyp: REG_DWORD

Option 2:

ReFS verfügt über eine faule MM-Unmap-Logik. Wenn ReFS also den gesamten Namespace umschließt, um eine MM-Unmap abzuschließen, wird die Zuordnung bei einer bestimmten Granularität deaktiviert. Die Menge des nicht zugeordneten virtuellen Adressraums wird durch die folgende Formel bestimmt:

RefsNumberOfChunksToTrim 128 MB (für Volumen von Größe > 10 TB) RefsNumberOfChunksToTrim 64 MB (für Volumen von Größe < 10 TB)

Diese Option funktioniert, wenn der va-Bereich, der nicht zugeordnet ist, keine aktiven Verweise hat (d. h. zugeordnete Metadatenseiten).

Geben Sie die angegebenen Werte im folgenden Unterschlüssel an:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
Wertname: RefsNumberOfChunksToTrim
Werttyp: REG_DWORD
DEFAULT (wenn nicht festgelegt oder 0): 4

Notiz

Wenn " RefsNumberOfChunksToTrim " auf höhere Werte festgelegt wird, wird ReFS aggressiver gekürzt. Dadurch wird die Arbeitsspeichermenge reduziert, die verwendet wird. Legen Sie den Kürzungswert auf eine entsprechende Zahl fest: 8, 16, 32 usw.

Option 3

In dieser Option sendet ReFS eine MM-Kürzungsinline, während sie die Zuordnung der Metadatenseite aufhebt. Dies ist die aggressiveste Option, da sie leistungsregressive Regression verursachen kann, wenn ReFS auf Hochleistungsmedien verwendet wird, z. B. eine SSD oder NVMe.

Geben Sie die angegebenen Werte im folgenden Unterschlüssel an:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
Wertname: RefsEnableInlineTrim
Werttyp: REG_DWORD
Festlegen von RefsEnableInlineTrim = 1

Empfehlung:

Wenn ein großer aktiver Arbeitssatz eine schlechte Leistung verursacht, versuchen Sie zuerst, RefsEnableLargeWorkingSetTrim = 1 festzulegen.

Wenn diese Einstellung kein zufriedenstellendes Ergebnis erzeugt, probieren Sie unterschiedliche Werte für RefsNumberOfChunksToTrim aus, z. B. 8, 16, 32 usw.

Wenn dies immer noch nicht den gewünschten Effekt bereitstellt, legen Sie RefsEnableInlineTrim = 1 fest.

Weitere Informationen

Um die Metadaten zu aktualisieren, verwendet ReFS "allocate-on-write" anstelle von "Schreiben an Ort und Stelle", um die Resilienz gegenüber Beschädigungen zu verbessern.

Schreibvorgänge sind anfällig für tornte Schreibvorgänge. Es tritt auf, wenn ein Stromausfall oder eine unerwartete Bereitstellung bewirkt, dass ein Schreibvorgang nur teilweise abgeschlossen wird.

Durch Zuweisungen beim Schreiben kann ReFS die Metadatenkonsistenz zuverlässig beibehalten, nachdem ein Stromausfall oder eine unerwartete Bereitstellung aufgetreten ist. Es liegt daran, dass ReFS weiterhin auf die vorherige, konsistente Metadatenkopie verweisen kann.

References