The following lines have been added. 2020/02/03 23:58:31 DEBUG : media/드라마/스토브리그.E01.191213.1080p-NEXT.mp4: waiting for in-sequence read to 1008861184 for 5ms
This is the new code which makes the fuse mount run asynchronously. This is great for performance normally, however it means sometimes rclone gets the reads out of order so it has to wait for an in-order read.
This problem has two possible solutions
disable the async mount option - this will revert to 1.50 behaviour
increase the wait time to > 5ms
Option 1 fixes the slow interactions with linux 5.4 kernel so isn't ideal. Option 2. is bad because it adds that much delay to rclone doing a seek.
I can make 1 & 2 configurable easily enough, but I think what might be needed is adaptive control. Maybe rclone should measure the interval between out of order requests...
I'll post something with some more controls for you to try in a bit, then we can decide what goes in the point release.
Here is an rclone with 2 new flags for rclone mount
--async-read=false will revert to 1.50 behaviour. This is half the speed on my machine though!
--vfs-read-wait 10ms will set the wait time.
Can you
verify that adding --async-read=false fixes the problem
Experiment with --vfs-read-wait 10ms (without the above flag) and find the smallest value for the time that means you don't get the aborting in-sequence read wait messages
You might find the number you need is only a bit bigger than 5ms which is the current default. I found in my testing with drive that 8ms was enough to get rid of all the aborts.
I found it to be very random with -vfs-read-wait. Tried 5-15ms sometimes it will be fine for a while then get the aborting message. 12ms worked for me consistently.
--async-read=true was definitely faster though. I haven't looked at i/o as this was merely a speed/error test.
Is this the root cause of the constantly high iowait? During my brief test of 1.51 I have iowait bogging down my system that I downgrade back to 1.50. That time, things became slow. So with 1.51 what speed is being improved? Is it speed for rclone copy only? Because rclone mount was slow due to iowait
I'm attempting to find a work-around for the excess seeking which kills performance.
I'll note that increased IOWAIT is to be expected when using async-read.
The kernel issues two or more read requests at once, but rclone can only satisfy one of them at a time as it is reading sequentially from the file, so the other, by definition has to wait. I don't think the IOWAIT should affect performance at all, but if rclone has to seek, when you see a "failed to wait for in-sequence read" message, that really kills performance. That is what I'm working on fixing!
I get the increase in iowats but what I was seeing was a 20-30% increase even on an idle/very minimal activity mount. Will see if I can run some tests later when I can.