Jul 20, 2023

Performance Test of Filesystem I/O

Bonnie Filesystem Benchmark Program

Bonnie tests the speed of file I/O using standard C library calls. It does reads and writes of blocks, testing for the limit of sustained data rate usually limited by the drive or controller and updates on a file better simulating normal operating conditions and quite dependent on drive and OS optimisations.

The per-character read and write tests are generally limited by CPU speed only on current-generation hardware. It takes some 35 SPECint92 to read or write a file at a rate of 1MB/s using getc and putc.

The seek tests are dependent on the buffer cache size, since the fraction of disk blocks that fits into the buffer cache will be found without any disk operation and will contribute zero seek time readings. I.e. if the buffer cache is 16MB and the Bonnie test file is 32MB in size, then the seek time will come out as half its real value. The seek time includes rotational delay, and will thus always come out higher than specified for a drive.

Checkout these related ports:
  • Wrk - Modern HTTP benchmarking tool
  • Webbench - Simple forking web benchmark
  • Vkpeak - Profile Vulkan devices to find their peak capacities
  • Vkoverhead - Evaluate CPU overhead of Vulkan drivers
  • Vkmark - Vulkan benchmark
  • Vegeta - HTTP load testing tool and library
  • Uperf - Network performance tool to model and replay of networking patterns
  • Unixbench - BYTE magazine's Public Domain benchmark for UNIX
  • Uica - Code Analyzer from the project
  • Ubench - Unix Benchmark Utility for CPU(s) and memory
  • Typometer - Text/code editor typing latency analyzer
  • Ttcp - Benchmarking tool for analysing TCP and UDP performance
  • Tsung - Multi-protocol distributed load testing tool
  • Thrulay - Network capacity tester
  • Tcpblast - Measures the throughput of a TCP connection