4.4-14 disabling NCQ system-wide?
windseeker
Status: Interested
Joined: 08 Mar 2016
Posts: 13
Reply Quote
Hi guys,

I wonder why liquorix 4.4-14 wants to disable NCQ system wide. I expect this to be a performance hit on many systems, especially modern SSD devices. But to be honest I am missing in-depth knowledge here, so I wanted to ask about the reasons and intentions before building and installing this one.

Thank you!
Back to top
damentz
Status: Assistant
Joined: 09 Sep 2008
Posts: 1122
Reply Quote
Hi windseeker,

NCQ was disabled system-wide after some heaving testing of IO stalling on my own system: rsync from SSD -> HDD while writing a large 100gb to the SSD.

In the default configuration using BFQ, my system would stall for upwards of 15 seconds. So, I did some experimentation. Raising nr_requests on each device in /sys/block/* from 128 (the default), to 1024 increased stalls noticeably. If I raise the nr_requests to 65536, essentially my system was completely unusable until the 100gb file was written to disk.

This testing was done with NCQ off, which helped a bit. We can probably re-enable and set a maximum queue depth of 4, essentially trusting that the storage device will complete 4 requests fast enough that the IO scheduler's choices will be mostly respected.

But yes, this is definitely a test, but still a step in the right direction for a responsive desktop. I'll investigate re-enabling NCQ for performance reasons.
Back to top
damentz
Status: Assistant
Joined: 09 Sep 2008
Posts: 1122
Reply Quote
New kernel is out, 4.4-16, and has NCQ re-enabled but with a maximum queue depth of 8 (out of 32). Give it a shot and let me know if you still notice a drop in throughput when doing heavy IO.
Back to top
windseeker
Status: Interested
Joined: 08 Mar 2016
Posts: 13
Reply Quote
I never noticed drops in I/O throuput, not before and not after your limitation of max queue depth. Tho I don't have data if the limitation causes general I/O slowdowns, but from theory I expect this to be slower now.
Back to top
Display posts from previous:   

All times are GMT - 8 Hours