JackKelly / light-speed-io

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

Try again to break out of the completion queue loop early (to keep the submission queue topped up!) #75

Open JackKelly opened 8 months ago

JackKelly commented 8 months ago

iostat -xm -t 1 -p nvme0n1 shows that the average queue length is only about 4, when running io_uring local on my laptop. fio is better at keeping the queue topped up. As is local_file_system.

Although, it's possible that the main problem is that we need to be getting file size with io_uring (#41) and getting file size concurrently with opening (#69).

JackKelly commented 8 months ago

Hmm... Interestingly, when running on my Intel NUC, the io_uring_local benchmark keeps the device IO queue topped up with about 16 reads. Which is what I'd expect.

Compared to my laptop, my NUC has a slower SSD but twice the number of CPU cores. So, on my laptop, it sounds like the code is struggling to keep up with the SSD. Maybe more threads (#61) would help?