Server 2016 ReFS File System Performance

Resilient File System (ReFS) is a new file system introduced in the Microsoft Windows Server 2012 R2 and updated in the Windows Server 2016.
The ReFS file system is designed to be more fault-tolerant with automatic integrity checking and self healing capabilities. The ReFS file system
is supposed to replace the NTFS file system in the future. The purpose of this review is to compare the performance of the ReFS file system
to the NTFS file system for different types of file copy, file search, file delete and file management operations on Server 2016 and Server 2012 R2.

For this performance review we have performed a number of different file copy, file synchronization, directory scanning, file search, disk space analysis,
file attribute change operations, duplicate files search and file delete performance tests using four different sets of files: small files, medium-sized files,
large files and huge files. All tests were performed on exactly the same hardware platform, in the same order using the same sets of files for each tested
file system and operating system.

Tested Operating Systems

Server 2016

Server 2012 R2

Test Servers Hardware Configuration

Intel Xeon Quad-Core CPU

8 GB of system memory

Samsung 850 PRO 512 GB SSD

Intel Gigabit Ethernet

Test Data Sets

Small Files - 250,000 files with the average file size of 16 KB

Medium-Sized Files - 50,000 files with the average file size of 64 KB

Large Files - 1,000 files with the average file size of 4 MB

Huge Files - 32 files with the average file size of 1 GB

Performance Tests

File Copy

File Synchronization

Disk Space Analysis

Duplicate Files Search

Change File Timestamps

Change File Attributes

File Delete

All tests were performed using the DiskBoss file management toolkit, which is capable of performing different types of disk space analysis, file copy, file synchronization,
file search, file management and file delete operations. For all tested operating systems, each test was performed 4 times using 1, 2, 3 and 4 parallel threads.

During each test, the server was monitored using the SysGauge system monitoring utility configured to monitor the disk transfer rate, the amount of the free system memory
and the amount of the cached memory, which is normally used as the file system cache during file copy operations.

Server 2016 ReFS vs. NTFS File Copy Performance

When copying small files to an SSD disk formatted using the Server 2016 ReFS file system, the average performance of file copy operations
reaches 13.45 MB/Sec compared to 63.83 MB/Sec delivered by the NTFS file system on the same SSD disk. When copying medium-sized files to
an SSD disk formatted using the Server 2016 ReFS file system, the average performance of file copy operations reaches 34.35 MB/Sec compared
to 116.38 MB/Sec delivered by the NTFS file system on the same SSD disk.

According to our specific benchmarks, the performance of the Server 2016 ReFS file system for small and medium-sized files is significantly
lower then the performance delivered by the NTFS file system on the same hardware platform. For large files, the performance of the Server
ReFS file system is slightly better, but still inferior to the performance of the NTFS file system on the same hardware platform.

When copying large files to an SSD disk formatted using the Server 2016 ReFS file system, the average performance of file copy operations
reaches 120.68 MB/Sec compared to 178.25 MB/Sec delivered by the NTFS file system on the same SSD disk. When copying huge files to an SSD disk
formatted using the Server 2016 ReFS file system, the average performance of file copy operations reaches 314.6 MB/Sec compared to 353.63 MB/Sec
delivered by the NTFS file system on the same SSD disk.

Server 2016 ReFS vs. NTFS File Management Operations

When scanning directories and analyzing disk space usage on an SSD disk formatted using the Server 2016 ReFS file system, the performance
of the analysis operation reaches 21,018 Files/Sec compared to 46,589 Files/Sec delivered by the NTFS file system on the same SSD disk.
When changing the files last modification dates on an SSD disk formatted using the Server 2016 ReFS file system, the performance of the operation
reaches 10,258 Files/Sec compared to 23,904 Files/Sec delivered by the NTFS file system on the same SSD disk.

The performance of the file attributes change operation reaches 8,302 Files/Sec for the Server 2016 ReFS file system compared to 24,327 Files/sec
delivered by the NTFS file system on the same SSD disk. Finally, the performance of the file delete operations reaches 2,247 Files/Sec for the Server
2016 ReFS file system compared to 16,822 Files/sec delivered by the NTFS file system on the same SSD disk.

According to our specific benchmarks, the performance of the Server 2016 ReFS file system is significantly lower then the performance delivered
by the NTFS file system for all types of disk analysis and file management operations.

Server 2016 ReFS File System Overhead and Memory Usage

In addition to the performance results, it is very important to understand how much of the system resources were used by the operating system
during the performance tests. For this purpose, we have used the SysGauge system monitoring
utility configured to monitor the disk transfer rate, the amount of free system memory and the amount of the cached system memory during each performance test.

For example, when copying a 4 GB set of small files to an SSD disk formatted using the NTFS file system, the Server 2016 operating system transferred
approximately 5 GB of the raw data to the disk and used 300 MB of the system memory as the file system cache.

On the other hand, when copying exactly the same 4 GB set of small files to the same SSD disk formatted using the Server 2016 ReFS file system,
the operating system transferred approximately 14 GB of the raw data to the disk and used 3.7 GB of the system memory as the file system cache.

The default file system cluster size for the Server 2016 ReFS file system is 4 KB exactly the same as for the NTFS file system and it is really
strange to see that the file system overhead caused the operating system to write almost 4 times more raw data to the disk and what is even more
troubling the use so much of the system memory as the file system cache. In order to clarify the situation, we have decided to reformat the ReFS
file system with the file system cluster size set to 64 KB, which can be done using the Windows built-in disk format tool.

When the SSD disk is formatted using the Server 2016 ReFS file system with the 64 KB cluster size, the situation gets even more troubling.
In order to copy the same 4 GB set of small files, the operating system consumes all 8GB of the system memory as the file system cache and
transfers 35 GB of the raw data to the disk.

As it is shown on the next screenshot, on the NTFS file system, the total size of the file set is 4 GB and the actual size on disk is 4.5 GB,
which is normal because some files are smaller than the 4 KB file system cluster size.

On the Server 2016 ReFS file system, the same set of files uses 16.8 GB, which is also normal because the file system cluster size is now set
to 64 KB and all files smaller than 64 KB still use 64 KB of the disk space.

But, it is still not clear why the operating system transferred 35.5 GB of the raw data to the SSD disk as displayed on the SysGauge monitoring report.
In order to verify this number, we have checked the free disk space on the SSD disk and as it is shown on the next screenshot, the operating system
indeed transferred 35.5 GB of raw data to the SSD disk in order to copy the 4 GB set of files.

The Server 2016 includes an updated version of the ReFS file system, which is even not compatible with the previous version of the file system provided
by the Server 2012 R2. In order to get better understanding of the issue, we have decided to compare the Server 2016 ReFS file system to the Server
2012 R2 on the same hardware platform.

The Server 2012 R2 ReFS file system provides only the 64K file system cluster size and it is even not possible to format the SSD disk with the 4 KB cluster size.
On the Server 2012 R2, the 4 GB set of small files shows exactly the same 16.8 GB size on disk, which is normal due to the 64 KB file system cluster size.

But, on the Server 2012 R2 disk space usage dialog the amount of the used disk space is only 19.3 GB compared to 35.5 GB on the Server 2016 ReFS file system
for exactly the same set of files, which confirms that the problem is related specifically to the updated version of the ReFS file system released with the Server 2016.

Finally, in order to clarify the issue with the amount of the system memory used as the file system cache, we have repeated all performance tests on the Server 2012 R2 ReFS
file system with the SysGauge system monitoring utility configured to monitor the disk transfer rate, the amount of the free system memory and the amount of the cached memory
used as the file system cache.

According to the performance results, the performance of the Server 2016 ReFS file system is significantly lower when copying small files and medium sized files.
For large and huge files, the performance of the file copy operations is identical to the Server 2012 R2 ReFS file system.

The performance of directory scanning and disk space analysis operations is identical in both operating systems. The performance of file timestamps change
and file attributes change operations is better in the Server 2016 ReFS file system, while the performance of the file delete operations is significantly
better in the Server 2012 R2 file system.

As it is shown on the SysGauge performance monitoring report, from the memory usage point of view, in order to copy the same 4 GB set of files, the Server 2012 R2
ReFS file system transfers just 5.8 GB of raw data to the disk compared to 35.5 GB of data for the Server 2016 ReFS file system.

Also, in order to copy the 4GB set of files, the Server 2012 R2 operating system used just 177 MB of the system memory as the file system cache compared
to almost 8 GB of the system memory used by the Server 2016 operating system.

Conclusions

The updated version of the ReFS file system included in the Server 2016 is significantly slower than the NTFS file system and the previous version of the ReFS file system provided by the Server 2012 R2 operating system.

The new version of the ReFS file system uses a lot of system memory as the file system cache during file copy operations and in some situations the file system cache may consume all the memory available in the system.

The updated version of the Server 2016 ReFS file system is not effective for storing large numbers of small files and the file system writes too much data to the disk compared to the previous version of the ReFS file system and the NTFS file system.

* This review was prepared for information purposes only and we strongly recommend to test the performance of DiskBoss file management
operations on your specific hardware platform and with your specific data sets.