Linux 5.15 I/O Can Achieve Up To ~3.5M IOPS Per-Core
The feature pull request mailed out today adds support for bio recycling in order to quickly reuse the bio for high IOPS scenarios rather than having to go back through the slab allocator. This cache though only works for polled I/O scenarios due to not being IRQ safe. With less than 200 lines of new code, this bio recycling is wired up and support added to IO_uring for using this bio allocation cache.
Axboe noted in the bio recycling pull request, "It's good for almost a 10% improvement in performance, bumping our per-core IO limit from ~3.2M IOPS to ~3.5M IOPS."
The Linux I/O limits were stressed with IO_uring and making use of Intel Optane Gen2 storage with now being able to achieve 3.5M+ IOPS per-core.
A 10% improvement with the Linux 5.15 kernel is exciting by itself but it's also on top of many other optimizations in recent times. It was just last year when Axboe noted his use of Gen2 Optane memory for IO_uring work and at the time the speedy results he was pleased with were around ~2.58M IOPS. Now with the latest Linux kernel is up to around 3.5M IOPS,