The use of asynchronous buffered writes based on io_uring reduced latency in XFS by up to 80 times

A series of patches have been published for inclusion in the Linux 5.20 kernel, adding support for asynchronous buffered writes to the XFS file system using the io_uring mechanism. Preliminary performance tests done with the fio toolkit (1 thread, block size 4kb, 600 seconds, sequential write) show an increase in input/output operations per second (IOPS) from 77k to 209k, transfer rates from 314MB/s to 854MB /s and latency drops from 9600ns to 120ns (80 times). sequential writes: without patch with patch libaio psync iops: 77k 209k 195K 233K bw: 314MB/s 854MB/s 790MB/s 953MB/s clat: 9600ns 120ns 540ns 3000ns

For those interested in the state of io_uring as of mid-2022, it is recommended that you familiarize yourself with the slides and video recording of the report from Kernel Recipes 2022. The changes already included in the kernel and planned are mentioned in an overview, for example, support can be noted:

  • multiple (multi-shot) accept().
  • multiple (multi-shot) recv() - according to tests, an increase of 6-8% - from 1150000 to 1200000 RPS.
  • update and fixes in the liburing library, adding documentation and tests.

In the context of io_uring portability, the slides mention significant similarities with the "I / O Rings" used in the Direct Storage subsystem in Windows 11, as well as the possibility of implementing cross-platform work, but from other platforms on the author's slide only FreeBSD is mentioned with a question mark.



Source: opennet.ru

Add a comment