ReFS Integrity Streams causing low write IOPS on S2D

Jie Jun 60 Reputation points
2026-08-06T07:14:38.8633333+00:00

How can I disable or manage Integrity Streams for specific files or folders only?

Windows for business | Windows Server | Storage high availability | Clustering and high availability
0 comments No comments

2 answers

Sort by: Most helpful
  1. Domic Vo 31,575 Reputation points Independent Advisor
    2026-08-06T08:18:27.7766667+00:00

    Hello,

    Integrity Streams is a ReFS feature that can be toggled per file or folder. You don’t need registry changes; the supported way is via PowerShell. Use Set-FileIntegrity -FileName "<path>" -Enable $false to disable it for a specific file or directory, and add -Recursive if you want it applied to all items in a folder. Check the current state with Get-FileIntegrity. This lets you selectively disable integrity checks where performance is more critical, while leaving them enabled elsewhere.

    I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!

    Domic Vo.

    Was this answer helpful?

    0 comments No comments

  2. AI answer

    2026-08-06T07:14:55.6266667+00:00

    Integrity streams can be managed at the file, directory, or volume level on ReFS, and settings can be changed at any time. Files and directories inherit the setting from their parent directory.

    For a targeted approach on S2D, disable integrity streams only where write performance matters most instead of changing the whole volume.

    Use these PowerShell cmdlets:

    1. Check the current setting for a file:
    Get-FileIntegrity -FileName 'C:\Docs\TextDocument.txt'
    
    1. Check all files in a folder:
    Get-Item -Path 'C:\Docs\*' | Get-FileIntegrity
    
    1. Disable integrity streams for a specific file:
    Set-FileIntegrity -FileName 'H:\Docs\TextDocument.txt' -Enable $False
    
    1. Disable integrity streams for all files in a specific folder:
    Get-Item -Path 'H:\Docs\*' | Set-FileIntegrity -Enable $False
    
    1. Set it directly on a directory so child items inherit the setting:
    Set-FileIntegrity 'H:\Docs' -Enable $False
    
    1. Set it on the whole volume if needed:
    Set-FileIntegrity H:\ -Enable $False
    

    Important behavior and planning points:

    • Integrity streams adds a performance cost.
    • With integrity streams enabled, writes become allocate-on-write operations, which can increase fragmentation and delay reads.
    • Checksum computation and validation can increase I/O latency.
    • On performance-sensitive systems, leaving integrity streams disabled is recommended.
    • The background scrubber validates file data only for files where integrity streams is enabled.
    • In a Failover Cluster, Storage module cmdlets operate at the cluster level across all servers in the cluster.

    If only certain workloads are affected, the most precise option is to disable integrity streams on the specific files or folders that need higher write IOPS, while leaving it enabled elsewhere for data protection.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.