Description - phoronix/fs-mark

FS_Mark is designed to test a system’s file-system performance.

The benchmark gives a few options

    Disk Test Configuration
        1: 1000 Files, 1MB Size
        2: 1000 Files, 1MB Size, No Sync/FSync
        3: 5000 Files, 1MB Size, 4 Threads
        4: 4000 Files, 32 Sub Dirs, 1MB Size

The usage of the underlying fs_mark command is:

Usage: fs_mark
 	-S Sync Method (0:No Sync, 1:fsyncBeforeClose, 2:sync/1_fsync, 3:PostReverseFsync, 4:syncPostReverseFsync, 5:PostFsync, 6:syncPostFsync)
 	[-D number (of subdirectories)]
 	[-N number (of files in each subdirectory in Round Robin mode)]
 	[-d dir1 ... -d dirN]
 	[-l log_file_name]
 	[-l log_file_name]
 	[-L number (of iterations)]
 	[-n number (of files per iteration)]
 	[-p number (of total bytes file names)]
 	[-r number (of random bytes in file names)]
 	[-s byte_count (size in bytes of each file)]
 	[-t number (of total threads)]
 	[-w number (of bytes per write() syscall)]

Here is an example run with -s 1048576 -N 1000

#  ./fs_mark  -s  1048576  -n  1000  -d  scratch 
#	Version 3.3, 1 thread(s) starting at Thu May 24 14:54:14 2018
#	Sync method: INBAND FSYNC: fsync() per file in write loop.
#	Directories:  no subdirectories used
#	File names: 40 bytes long, (16 initial bytes of time stamp with 24 random bytes at end of name)
#	Files info: size 1048576 bytes, written with an IO size of 16384 bytes per write
#	App overhead is time in microseconds spent in the test not doing file writing related system calls.

FSUse%        Count         Size    Files/sec     App Overhead
    16         1000      1048576         14.3            52852

Overall a benchmark that is intended to exercise the underlying filesystem much more than processor.