Éppen az ukuu (Ubuntu Kernel Update Utility https://doc.ubuntu-fr.org/ubuntu_kernel_upgrade_utility ).
Az a helyzet, hogy amikor ellenőrizem a rendelkezésre álló I / O ütemezőket, úgy tűnik, hogy nem találom sem a BFQ-t, sem a Kyber I / O ütemező:
cat /sys/class/block/sda/queue/scheduler > noop deadline [cfq]
Tehát hogyan használhatja az új ütemezők egyikét ebben a Linux-verzióban?
Válasz
Nem vagyok az Ubuntuban, de az segíthet, amit a Fedorában tettem.
A BFQ egy blk-mq (Multi-Queue Block IO Queuing) Mechanism) ütemező, ezért indításkor engedélyeznie kell az blk-mq fájlt, szerkesztenie kell az / etc / default / grub fájlt, és hozzá kell adnia a scsi_mod.use_blk_mq=1
fájlt a GRUB_CMDLINE_LINUX
, ez az én grub fájlom, például:
GRUB_TIMEOUT=3 GRUB_DISTRIBUTOR="$(sed "s, release .*$,,g" /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=false GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="quiet vt.global_cursor_default=0 scsi_mod.use_blk_mq=1" GRUB_DISABLE_RECOVERY="true"
Ezt követően frissítenie kell a grub-ot. A Fedorán sudo grub2-mkconfig -o /path/to/grub.cfg
-et kell használnunk, amely változik az indítási módtól függően . Az Ubuntuban egyszerűen futtathatja:
sudo update-grub
Indítsa újra, és ha ezt megkapja:
cat /sys/block/sda/queue/scheduler [mq-deadline] none
Valószínűleg a rendszermagot BFQ-val fordították le modulként , és ez érvényes lehet a Kyberre is.
sudo modprobe bfq sudo cat /sys/block/sda/queue/scheduler [mq-deadline] bfq none
Indításkor hozzáadhatja egy bfq
fájl hozzáadásával.
.
Fontos megjegyezni, hogy a blk_mq bekapcsolásával lehetetlenné válik a nem blk_mq ütemezők használata, így elveszíti a noop cfq és a non mq deadline
Nyilvánvaló, hogy a blk_mq ütemezési rendszer nem támogatja a lift zászlókat a grubban, ehelyett az udev szabályok használhatók, azzal a bónusszal, hogy alaposabb vezérlést kínál.
Hozzon létre /etc/udev/rules.d/60-scheduler.rules
, ha nem létezett, és adja hozzá:
ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"
Mint hegyes itt , ha szükséges, meg tudja különböztetni a rotációt l (HDD) és nem rotációs (SSD) eszközök az udev szabályokban a ATTR{queue/rotational}
attribútum használatával. Ne feledje, hogy Paolo Valente, a BFQ fejlesztője a LinuxCon Europe-ban rámutatott, hogy a BFQ jobb választás lehet, mint a noop
vagy deadline
ütemezők alacsony késleltetésű garanciák, mi az a jó tanács, hogy SSD-k esetén is használják.
Paolo összehasonlítása: https://www.youtube.com/watch?v=1cjZeaCXIyM&feature=youtu.be
Mentse el, majd töltse be és indítsa újra udev rules
:
sudo udevadm control --reload sudo udevadm trigger
Megjegyzések
Válasz
nagy kiterjesztés RomuloPBenedetti válasz :
A az udev szabályban.Ez gyakorlatilag felváltja a (z) DRIVERS=="sd|sr"
szót, és csak akkor nem kapcsol be, ha elfelejtette a scsi_mod.use_blk_mq=1
Trivia:
-
PROGRAM
– Futtasson egy programot annak megállapítására, hogy van-e egyezés; a kulcs igaz, ha a program sikeresen visszatér; Ha nincs megadva abszolút útvonal, akkor a program várhatóan a / lib / udev fájlban fog élni. -
$sys
– A sysfs csatolási pont (/sys
). -
$devpath
– Az eszköz devpath-ja (/ devices / pci / …).
ACTION=="add|change", SUBSYSTEM=="block", DRIVERS=="sd|sr", ATTR{queue/scheduler}!="bfq", ATTR{queue/scheduler}="bfq"
Elkerüli a minták illesztését az eszközök nevéhez, ami pontosabbá teszi az egyezést. Nem nyert ' t a partíciós eszközökkel, mert nem ' nincsenek " sorban / ütemező " attribútum.echo bfq > /sys/block/sda/queue/scheduler
gyökérként. (A sudo nem működött nálam az Ubuntu 18.04-ben) Ennek azonnal hatékonnyá kell tennie.