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

Syntax

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:   1.0.1.0
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

License

FileIOTest is freeware.

Changelog

Version 1.0.1

  • First released version

System Requirements

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.

Download

Download FileIOTest here.

, ,

One Response to FileIOTest – Times the Duration of File IO Operations

  1. Kevin Goodman August 6, 2015 at 22:15 #

    Helge,

    Thanks for creating this!

    Will have my team test with FSLogix Profile Containers and let you know the results.

    Kevin

Leave a Reply to Kevin Goodman Click here to cancel reply.