1 |
On Saturday, 2 May 2020 10:54:02 BST Dale wrote: |
2 |
> Michael wrote: |
3 |
|
4 |
> > I'd be interested to know as a comparison if Nikos' and Dale's I/O |
5 |
> > unresponsiveness in swapping sees an improvement with the I/O scheduler |
6 |
> > for |
7 |
> > spinning drives set to bfq; e.g.: |
8 |
> > |
9 |
> > echo bfq > /sys/block/sda/queue/scheduler |
10 |
> |
11 |
> This is its setting at the moment. |
12 |
> |
13 |
> |
14 |
> root@fireball / # cat /sys/block/sda/queue/scheduler |
15 |
> noop deadline [cfq] |
16 |
> root@fireball / # |
17 |
|
18 |
Ahh, you must be on an older kernel? |
19 |
|
20 |
I'm on 5.4.28 here and these are the new kernel scheduler options: |
21 |
|
22 |
# |
23 |
# IO Schedulers |
24 |
# |
25 |
CONFIG_MQ_IOSCHED_DEADLINE=y |
26 |
CONFIG_MQ_IOSCHED_KYBER=y |
27 |
CONFIG_IOSCHED_BFQ=y |
28 |
CONFIG_BFQ_GROUP_IOSCHED=y |
29 |
# CONFIG_BFQ_CGROUP_DEBUG is not set |
30 |
# end of IO Schedulers |
31 |
|
32 |
The BFQ scheduler has a number of tunable parameters via sysctl, like weight, |
33 |
latency and what not, but unless you're into running endless benchmark tests |
34 |
to tune your particular devices, I'd leave it to do its thing with default |
35 |
settings. |
36 |
|
37 |
|
38 |
> I know I can echo it in but where do I set that to that when booting? |
39 |
|
40 |
You can set a local script to switch from other schedulers - the default is |
41 |
mq-deadline - or you can disable the others in the kernel. I don't know if |
42 |
you can pass an option to the kernel line at boot time. |
43 |
|
44 |
I understand this is more effective with slow(er) spinning drives and perhaps |
45 |
old SSDs. NVMe drives won't benefit from it and are better run with the |
46 |
default mq-deadline scheduler. |