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 -h
-k -F -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.