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)