#io #command-line

app ssd-benchmark

Super Simple Disk Benchmark - benchmarks the writing performance of your disk

13 stable releases

new 1.2.0 Jan 8, 2025
1.1.10 Oct 31, 2024
1.1.9 Oct 13, 2022
1.1.8 Mar 17, 2022
1.1.3 Jun 1, 2020

#97 in Command line utilities

Download history 15/week @ 2024-09-24 28/week @ 2024-10-01 2/week @ 2024-10-08 136/week @ 2024-10-29 5/week @ 2024-11-05 7/week @ 2024-11-12 9/week @ 2024-11-19 58/week @ 2024-11-26 23/week @ 2024-12-03 103/week @ 2024-12-10 21/week @ 2024-12-17 203/week @ 2025-01-07

230 downloads per month

GPL-3.0-only

24KB
490 lines

SSD Benchmark

License: GPL v3 Crates Version Build Status dependency status

A super simple disk benchmark tool

inspired by simple disk benchmark.

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.

It used random data and writes first sequentially chunks of 8MB until a total 1GB is written. It measures writing time and throughput.

After that, it writes these random data 8 times again on disk and measures the average writing times and throughput for this.

Demo

demo

Quick Start

Using the docker image

docker run --rm ghcr.io/sassman/ssd-benchmark-rs

Install on linux

Get it from the Snap Store

sudo snap install ssd-benchmark

Install with cargo

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 if the installation went through, you can run ssd-benchmark that should output similar to

$HOME/.cargo/bin/ssd-benchmark

Usage

$ ssd-benchmark
____    ____    ____                ____                          _                                  _
/ ___|  / ___|  |  _ \              | __ )    ___   _ __     ___  | |__    _ __ ___     __ _   _ __  | | __
\___ \  \___ \  | | | |    _____    |  _ \   / _ \ | '_ \   / __| | '_ \  | '_ ` _ \   / _` | | '__| | |/ /
___) |  ___) | | |_| |   |_____|   | |_) | |  __/ | | | | | (__  | | | | | | | | | | | (_| | | |    |   <
|____/  |____/  |____/              |____/   \___| |_| |_|  \___| |_| |_| |_| |_| |_|  \__,_| |_|    |_|\_\


Version 1.2.0

## Sequential Writes

Performing 128 sequential writes of 8 MB blocks
................................................................

Total time                                  229 ms
Write Throughput                           4.37 GB/s
Write Performance                           558 IOPS

## Cycled Sequential Writes

Performing 8 cycles of 128 sequential writes of 8 MB blocks
[1/8] ................................................................
[2/8] ................................................................
[3/8] ................................................................
[4/8] ................................................................
[5/8] ................................................................
[6/8] ................................................................
[7/8] ................................................................
[8/8] ................................................................

Total time                                 1894 ms
Min write time                              205 ms
Max write time                              401 ms
Range write time                            195 ms
Mean write time Ø                           236 ms
Standard deviation σ                         62 ms

Min write throughput                       2.49 GB/s
Max write throughput                       4.87 GB/s
Max write performance                       623 IOPS
Min write performance                       318 IOPS
Mean write performance                      565 IOPS

## Notes

1 MB = 1024 KB and 1 KB = 1024 B
IOPS = Throughput [B/s] / Block Size [B]

Options

  • -d or --directory to specify a directory to write to and meassure the performance
  • --block-size to specify the block size in, like --block-size 4k or --block-size 8m (default is 8m)

Missing something?

If you miss a feature file an issue on github and don't forget to star the repo.

Dependencies

~1.1–1.7MB
~32K SLoC