LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Arch
User Name
Password
Arch This Forum is for the discussion of Arch Linux.

Notices


Reply
  Search this Thread
Old 07-29-2017, 08:55 PM   #1
WFV
Member
 
Registered: Apr 2012
Location: somehow, somewhere
Distribution: Arch
Posts: 197

Rep: Reputation: Disabled
multiple drives io-scheduler use


I'm a little confused regarding setting up different schedulers for different drives (SSD and HDD) in the Wiki for using BFQ. The example using udev, in order to make the HDD's use BFQ, do I just add a second line to the rule and edit it for rotational = 1 and the desired scheduler, or can the one line be appended with an "else" statement, or does it require a separate rule (e.g. 61-ioscheduler.rule)? I successfully set BFQ to spin drive sda in a VirtualBox guest Arch using the udev example and grub edit, but host is Arch with multiple drives:
sda = SSD ext4
sdb = HDD ext4
sdc = HDD ext4
sdd = HDD ext4
sde = HDD ntfs
I plan to use noop or deadline for the SSD and BFQ for the HDDs. Thanks anyone.
EDIT (current schedulers in use):
Code:
% cat /sys/block/sd*/queue/scheduler
[noop] deadline cfq 
noop deadline [cfq] 
noop deadline [cfq] 
noop deadline [cfq] 
noop deadline [cfq]
and available schedulers:
Code:
% zgrep IOSCHED /proc/config.gz
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_MQ_IOSCHED_KYBER=y
CONFIG_IOSCHED_BFQ=y
CONFIG_BFQ_GROUP_IOSCHED=y

Last edited by WFV; 07-30-2017 at 06:35 AM.
 
Old 07-30-2017, 12:54 AM   #2
WFV
Member
 
Registered: Apr 2012
Location: somehow, somewhere
Distribution: Arch
Posts: 197

Original Poster
Rep: Reputation: Disabled
this works for now, forgetting using other schedulers (deleted the tmpfiles.d conf file I was using to set the SSD to noop with stock kernel elevator=cfq), changed /etc/default/grub per the wiki for blk_mq, and created the udev rule:
Code:
/etc/udev/rules.d/60-schedulers.rules
# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

# set bfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[b-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
results:
Code:
# for f in /sys/block/sd?/queue/scheduler; do printf "$f is "; cat $f; done
/sys/block/sda/queue/scheduler is [mq-deadline] kyber bfq none
/sys/block/sdb/queue/scheduler is mq-deadline kyber [bfq] none
/sys/block/sdc/queue/scheduler is mq-deadline kyber [bfq] none
/sys/block/sdd/queue/scheduler is mq-deadline kyber [bfq] none
/sys/block/sde/queue/scheduler is mq-deadline kyber [bfq] none
/sys/block/sdf/queue/scheduler is mq-deadline kyber [bfq] none
had to add that second line to the rule as it seems to ignore the rotational ATTRibute and initially had set all drives to deadline.

Last edited by WFV; 08-12-2017 at 11:56 AM.
 
1 members found this post helpful.
Old 08-12-2017, 12:08 PM   #3
WFV
Member
 
Registered: Apr 2012
Location: somehow, somewhere
Distribution: Arch
Posts: 197

Original Poster
Rep: Reputation: Disabled
The boot journal still shows io scheduler default as cfq.
Code:
% journalctl -b | grep scheduler
Aug 11 19:15:31 arch-pelago kernel: io scheduler noop registered
Aug 11 19:15:31 arch-pelago kernel: io scheduler deadline registered
Aug 11 19:15:31 arch-pelago kernel: io scheduler cfq registered (default)
Aug 11 19:15:31 arch-pelago kernel: io scheduler mq-deadline registered
Aug 11 19:15:31 arch-pelago kernel: io scheduler kyber registered
Aug 11 19:15:31 arch-pelago kernel: io scheduler bfq registered
Why is this?

Grub is set to
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.dpm=1 scsi_mod.use_blk_mq=y dm_mod.use_blk_mq=y"
and clearly it works as shown in the previous post having rebuilt grub, created the udev rule, and rerun mkinitcpio, and the other schedulers are no longer an elevator option cfq, noop, deadline as expected.

EDIT: so I since switched back to the stock deadline for ssd, and cfq for spin drives due to system was becoming sluggish (thunar, google-chrome (internet in general)) or intermittent noticeable lags. I used bfq in the past with Graysky's linux-ck-piledriver optimized kernel with excellent results until it switched to MuQSS which for some reason wouldn't work with cgroups on my build and I couldn't figure out how to make it.

Last edited by WFV; 08-16-2017 at 11:09 PM. Reason: update on system
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
setting up multiple drives Jan Tanjo Linux - General 1 12-02-2007 04:17 PM
Multiple Blade servers booting from multiple disk drives simultaneously NGC_cheryl Linux - Enterprise 0 11-26-2007 08:38 AM
multiple hard drives jasma12 Linux - General 6 02-06-2006 04:28 PM
multiple drives cs-cam General 2 02-16-2005 05:46 AM
Treat multiple drives as one Whitman Linux - Software 5 04-06-2004 05:21 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Arch

All times are GMT -5. The time now is 02:46 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration