tree: aeb8fe9c22029eeff5bf3b06648c6708547efd96 [path history] [tgz]
  1. meta/
  2. src/
  3. BUILD.gn
  4. README.md
src/storage/bin/odu/README.md

odu: A generic filesystem benchmarking utility for fuchsia

The tool can be built for host as well as for target by adding --with --with //src/storage/bin/odu,//src/storage/bin/odu:odu_host (the host side binary can be found in out/<target>/host_x64/odu).

More detailed docs can be generated with

fx gen-cargo //src/storage/bin/odu:bin
fx rustdoc --doc-private //src/storage/bin/odu:bin

Sample commands

# Measure `read` performance on an a existing file at `/tmp/x`
odu --target /tmp/x --operations read

# measure sequential write performance using 400 IOs per thread with 8192 as block size alignment
odu --target /tmp/x --operations write --max_io_count=400 --sequential true --block_size 8192 --max_io_size 8192 --align true

Use cases

The tool can be used to measure and compare performance between fuchsia and other POSIX-like OSes.

Other than manual runs, odu is used by bots to run the following test cases to measure perf:

  • sequential/write/8192: Measures the time to write blocks of size 8KiB in turn to a newly-created file, using the system filesystem, without any explicit syncing or flushing. The resulting metric is the time taken for each per-block write to return.
  • sequential/write/random_size: Measures the time to write blocks of random size less than 8KiB in turn to a newly-created file, using the system filesystem, without any explicit syncing or flushing. The resulting metric is the time taken for each per-block write to return.
  • sequential/read/8192: Measures the time to read blocks of size 8KiB in turn from a file, using the system filesystem. The resulting metrics is the time taken for each per-block read to return.
  • sequential/read/random_size: Measures the time to read blocks of random size less than 8KiB in turn from a file, using the system filesystem. The resulting metric is the time taken for each per-block read to return.