Skip to content

AsyncIOBench/IOBenchmark

Repository files navigation

IOBenchmark, NVMe Storage Benchmarking

This repository contains scripts and tools for benchmarking NVMe storage using different I/O engines, including libaio, io_uring, and SPDK. It also includes performance analysis and results obtained from running these tests.

Repository Structure

  • Experiments - Contains Shell scripts for running benchmarks with different I/O engines, Output files and performance analysis from the benchmarking tests, Installation and testing scripts for SPDK, and Scripts for evaluating RocksDB performance on NVMe storage.
  • Report - LaTeX source files of the performance analysis report, including detailed results, figures, and discussions.

Setup and Usage

Clone the Repository

git clone https://github.com/AsyncIOBench/IOBenchmark.git
cd IOBenchmark

Run Benchmarking Scripts

Each script runs fio with a specific I/O engine:

  • script1.sh → Uses libaio
  • script2.sh → Uses io_uring
  • script3.sh → Uses SPDK

Run a script using:

chmod +x Experiments/libaio/script1.sh
./Experiments/libaio/script1.sh

View Results

After execution, results are saved in Experiments. You can analyze them using:

cat Experiments/libaio/randwrite_1.txt

Performance Analysis

The repository includes:

  • Latency, IOPS, and Bandwidth comparisons for libaio and io_uring.
  • NVMe storage behavior under high load.
  • SPDK performance evaluation and optimization techniques.
  • RocksDB benchmarking on NVMe storage:
    • Evaluates how different I/O engines affect database performance.
    • Analyzes read/write throughput, latency, and tail latency under various workloads.
    • Explores the impact of NVMe storage on key-value database operations.
    • Compares sequential and random read/write performance.

Performance Comparison

Below is the comparison of various performance metrics (Latency, IOPS, and Bandwidth) across different I/O engines (libaio, io_uring, and SPDK).

Latency Comparison IOPS Comparison
Latency Comparison IOPS Comparison
Bandwidth Comparison Overview
Bandwidth Comparison Overview

Team

About

Benchmarking NVMe storage using different I/O engines, including libaio, io_uring, and SPDK

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •