Development quote of the week
The biggest problem in benchmarking filesystem I/O is that Linux tries really hard to avoid doing it, aggressively using any spare memory as a filesystem cache. This is why serving static Web traffic out of the filesystem often remains a good idea in 2024; your server will take care of caching the most heavily fetched data in RAM without you having to do cache management, which everyone knows is hard.
I have read of various cache-busting strategies and have never really been convinced that they'll outsmart this aspect of Linux, which was written by people who are way smarter and know way more than I think I do. So Bonnie has always used a brute-force approach: Work on a test file which is much bigger than main memory, so Linux has to do at least some real I/O. Ideally you'd like it to be several times the memory size.
But this has a nasty downside. The computer I'm typing on has 32GB of memory, so I ran Bonnie with a 64G filesize (128G would have been better) and it took 35 minutes to finish. I really don't see any way around this annoyance but I guess it's not a fatal problem.
Oh, and those numbers: Some of them look remarkably big to me. But I'm an old guy with memories of how we had to move the bits back forth individually back in the day, with electrically-grounded tweezers.
— Tim Bray
