super simple disk benchmark written in rust
Today I've discovered simple disk benchmark
written in C and I wanted to give a very minimal version of it a try in rust.
Let's explore the new crate and command line tool ssd-benchmark
and discover how simple it actually is to benchmark a disk.
Updated: 2020-05-09 for version 1.1.0
Purpose of life
This tool has just one single purpose:
it measures the writing performance of your hard disk on macOS and Linux -
more precisely spoken, of the disk under your CWD
.
First, it measures the writing time and throughput by using random data from rand crate
and writing sequentially chunks of 8MB until a total 1GB is written.
After that it writes this random data 8 times again on disk and measures the respective average writing time and throughput.
Quick Start
Install
To install the ssd-benchmark tool, you just need to run
cargo install --force ssd-benchmark
(--force just makes it update to the latest version if it's already installed)
To verify that the installation went through, you can run ssd-benchmark
that
should output similar to
$HOME/.cargo/bin/ssd-benchmark
Usage
$ ssd-benchmark
### Super Simple Disk Benchmark ###
## Star me on https://github.com/sassman/ssd-benchmark-rs ##
Filling buffer with 8 MB random data...
Initilisation of buffer done 4890 ms
Starting benchmark...
Perform sequential writing of total 1024 MB in 8 MB chunks
................................................................................................................................
Total time 2522 ms
Throughput 512.00 MB/s
Perform 8 write cycles of 1024 MB
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
Total time 29598 ms
Min write time 2516 ms
Max write time 4934 ms
Range write time 2418 ms
Average write time μ 3699 ms
Standard deviation σ 801 ms
Min throughput 207.54 MB/s
Max throughput 407.00 MB/s
Average throughput Ø 276.83 MB/s
Standard deviation σ 64.76 MB/s
The great thing is, there are no parameters or options.
Missing something?
If you miss a feature, file an issue on github and don't forget to star the repo.
Thanks for reading and don't miss out to give feedback :)
Used versions:
$ rustc --version
rustc 1.43.0 (4fb7144ed 2020-04-20)
$ cargo --version
cargo 1.43.0 (3532cf738 2020-03-17)