FileIOTest – Times the Duration of File IO Operations
FileIOTest is a command line tool that tests the speed of local or remote (SMB) storage by performing some common file IO operations repeatedly and measuring the duration.
These are the main facts:
- Performs four different types of file IO: write, custom read, read with the GetPrivateProfileString API, create/delete
- The number of iterations can be specified
- Each generated file name is unique to prevent caching
- Works with local and UNC paths
- FileIOTest does not require any software to be installed
- FileIOTest works on any version of Windows from Vista / Server 2008 onwards
- FileIOTest is freeware
FileIOTest was developed to collect data for the 2015 talk on Windows folder redirection Aaron Parker, Shawn Bass and myself jointly presented.
When to Use
FileIOTest is useful for performance testing the real-world file performance of storage subsystems and protocols. With FileIOTest you can easily compare configurations by simply pointing FileIOTest at UNC paths that are hosted on different machines.
FileIOTest not only tests read and write operations but also deletes (which can be very slow with some anti-virus products) and the notorious Windows API function GetPrivateProfileString (which is used by countless applications).
Some ideas for performance tests and comparisons that might prove to be interesting:
- SMB 1 vs. SMB 2 vs. SMB 3
- NetApp filer vs. Windows file server
- Comparing various anti-virus products
- The effects of installing a DLP (data loss prevention) product
The program’s help screen describes the available options in detail:
FileIOTest by Helge Klein Times the duration of file IO operations against a local or remote target Homepage: http://helgeklein.com Version: 220.127.116.11 Copyright: Helge Klein Syntax: ======= FileIOTest [-help] -target <UNC path> [-iterations <number>] Notes: ====== The default number of iterations is 1,000. Each generated file name is unique. Turn off antivirus unless you want to test AV performance. Explanation of the tests: ====== Write with custom function: Creates the file and writes <iteration> lines opening and closing the handle for each line ReadPrivateProfileString: Calls the GetPrivateProfileString API to read <iteration> lines individually Read with custom function: Opens the file once and reads <interation> lines individually Create/delete loop: Creates the file, writes one line, deletes the file. This happens <iteration> times FileIOTest finished successfully
FileIOTest is freeware.
- First released version
FileIOTest works on any version of Windows beginning with Vista / Server 2008. This includes Windows 7, 8, 8.1, 10 and Server 2012 (R2). FileIOTest does not require any additional software.
FileIOTest comes as a 32-bit binary only but works correctly on both 32-bit and 64-bit Windows.
Thanks for creating this!
Will have my team test with FSLogix Profile Containers and let you know the results.