vfs_speedtest
File transfer throughput benchmark for a mounted filesystem
SYNOPSIS
vfs_speedtest [-cD] [-d MiB] [-f operations] [-n runs] [-q KiB] [-W warmup] [-z sizes] -P directory
DESCRIPTION
vfs_speedtest runs the transfers of the Netatalk server benchmark afp_speedtest(1) as POSIX file operations in directory, so that a mounted filesystem is measured end to end. Read, Write and Copy move the data through user space one chunk at a time; ServerCopy hands a whole file to copy_file_range(2), which an SMB3 or NFS 4.2 server, or a FUSE daemon implementing the operation, executes without the data crossing the mount, and which the kernel carries out itself otherwise. Runs, warmup, statistics and the CSV layout are those of afp_speedtest(1), so the same chart scripts read both.
Every data file opens with
O_DIRECT;
pass
-D
on a plain local filesystem, which refuses it for small transfers.
Results go to standard output, diagnostics to standard error.
Each operation works in a directory named
<Operation>Test-<pid>
under
directory,
removed when the operation finishes.
OPTIONS
-P directory
Directory on the mounted filesystem to run in.
-c
CSV output: one row per measured run, five statistics rows per operation and size, and, for a sweep, one summary block per operation.
-D
Buffered I/O in place of
O_DIRECT.
-d MiB
File size in MiB (default: 64).
-f operations
Comma-separated operations among Read, Write, Copy and ServerCopy (default: Write).
-n runs
Measured runs per operation and size (default: 1).
-q KiB
Chunk size (default: 1024).
-W warmup
Warmup runs left out of the statistics (default: 1).
-z sizes
File size sweep, comma-separated sizes in MiB, each a multiple of 4 KiB; fractions name KiB sizes (4 KiB is 0.00390625).
EXIT STATUS
The vfs_speedtest utility exits 0 on success, and >0 if an error occurs. A failed file operation exits with status 2 after removing what the run created; a usage error exits with status 1.
EXAMPLES
The sweep of the Netatalk performance dashboards over a FUSE mount, as CSV:
$ vfs_speedtest -c -n 20 -f Read,Write,Copy,ServerCopy -z 0.00390625,0.0078125,0.015625,0.03125,0.0625,0.125,0.25,0.5,1,2,4,8,16,32,64,128,256 -P /mnt/afpfs > speedtest.csv
SEE ALSO
afp_speedtest(1), mount_afpfs(1), vfs_lantest(1)