JackKelly / light-speed-io

Read & decompress many chunks of files at high speed
MIT License
43 stars 0 forks source link

Build a command-line benchmarking app #130

Open JackKelly opened 1 month ago

JackKelly commented 1 month ago

A bit like fio. Automatically create files.

Allow users to select:

lsio_uring specific:

Config

Like fio, allow the user to config lsio_benchmark using the command line or a config file?

Outputs:

While running:

When finished:

io_uring-specific output:

It might also be nice to see the behaviour of each io_uring thread. Although that will, obviously, require changes to the lsio_uring code. Maybe, for example, when the benchmark finishes, we'd see summary stats for how many io_uring SQEs each worker thread submitted, and the latency.

While running, maybe we could even show a "progress bar" for each thread, showing how full its tracker is. Although that wouldn't be a progress bar as such, because it'll go up and down! I think indicatif::ProgressBar::set_position can be used to bounce the "progress bar" up and down. Or, better, we'd show more of a "proper" progress bar, showing, per thread, the total number of outputs, vs the total number of elements in its worker queue. But that might be getting complicated, and maybe not very useful!

JackKelly commented 1 month ago

Useful crates

JackKelly commented 1 month ago

made good progress today, and have some good performance results (see #50 )

JackKelly commented 1 month ago

This is mostly done. But I'm going to leave this open because there are a few outstanding items in the lists above.