Asensin juuri Linux-ytimen version 4.12 Ubuntu 17.04: een ukuu: ta (Ubuntu Kernel Update Utility https://doc.ubuntu-fr.org/ubuntu_kernel_upgrade_utility ).
Asia on, että kun tarkistan käytettävissä olevat I / O-ajastimet, en näytä löytävän BFQ: ta eikä Kyber I / O ajastin:
cat /sys/class/block/sda/queue/scheduler > noop deadline [cfq] Joten miten käyttää yhtä uusista ajoituksista tässä Linux-versiossa?
Vastaa
En ole Ubuntussa, mutta Fedorassa tekemäni toiminta voi auttaa sinua.
 BFQ on blk-mq (Multi-Queue Block IO Queuing Mechanism) ajastin, joten sinun on otettava blk-mq käyttöön käynnistyshetkellä, muokattava / etc / default / grub -tiedostoa ja lisättävä scsi_mod.use_blk_mq=1 GRUB_CMDLINE_LINUX, tämä on minun grub-tiedostoni esimerkkinä: 
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"  Tämän jälkeen sinun on päivitettävä grub-tiedosto. Fedorassa on käytettävä sudo grub2-mkconfig -o /path/to/grub.cfg, joka vaihtelee  käynnistystavasta riippuen . Ubuntussa voit yksinkertaisesti ajaa: 
sudo update-grub Käynnistä uudelleen ja jos saat tämän:
cat /sys/block/sda/queue/scheduler [mq-deadline] none Luultavasti ytimesi on käännetty BFQ-moduulina moduulina , ja näin voi olla myös Kyberillä.
sudo modprobe bfq sudo cat /sys/block/sda/queue/scheduler [mq-deadline] bfq none  Voit lisätä sen käynnistyksen yhteydessä lisäämällä /etc/modules-load.d/bfq.conf -tiedoston, joka sisältää bfq. 
On tärkeää huomata, että kun blk_mq otetaan käyttöön, on mahdotonta käyttää muita blk_mq-ajastimia, joten menetät noop cfq: n ja ei mq deadline
Ilmeisesti blk_mq-ajoitusjärjestelmä ei tue hissilippuja grubissa, sen sijaan voidaan käyttää udev-sääntöjä, ja bonus tarjoaa tarkemman hallinnan.
 Luo /etc/udev/rules.d/60-scheduler.rules, jos sitä ei ollut, ja lisää: 
ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"  Kuten huomautti  täällä  tarvittaessa voit erottaa rotaation a l (kiintolevyt) ja kiertämättömät (SSD) laitteet udev-säännöissä käyttämällä attribuuttia ATTR{queue/rotational}. Huomaa, että BFQ-kehittäjä Paolo Valente huomautti LinuxCon Europessa, että BFQ voi olla parempi valinta kuin noop tai deadline aikatauluttajat termein alhaisen viiveen takuista, mikä on hyvä neuvo käyttää sitä myös SSD-levyille. 
Paolon vertailu: https://www.youtube.com/watch?v=1cjZeaCXIyM&feature=youtu.be
 Tallenna se ja lataa ja laukaise uudelleen udev rules: 
sudo udevadm control --reload sudo udevadm trigger Kommentit
Vastaa
Vastaanottaja laajenna suurta RomuloPBenedetti -vastausta :
 Voit testata, onko bfq-ajastin todella käytettävissä tietyllä laitteella käyttämällä PROGRAM=="/bin/grep -E -q "(^|[[:space:]])bfq($|[[:space:]])" "$sys$devpath/queue/scheduler"" udev-säännössä.Tämä korvaa tosiasiallisesti DRIVERS=="sd|sr" eikä vain laukaise, jos unohdetaan scsi_mod.use_blk_mq=1 
Trivia:
-  PROGRAM– Suorita ohjelma selvittääkseen, onko vastaavuuksia; avain on totta, jos ohjelma palaa onnistuneesti; Jos absoluuttista polkua ei anneta, ohjelman odotetaan elävän hakemistossa / lib / udev.
-  $sys– Sysfs-liitäntäpiste (/sys).
-  $devpath– laitteen devpath (/ devices / pci / …).
ACTION=="add|change", SUBSYSTEM=="block", DRIVERS=="sd|sr", ATTR{queue/scheduler}!="bfq", ATTR{queue/scheduler}="bfq"Se välttää kuvien sovittamisen laitteiden nimiin, mikä tekee yhteensopivuudesta tarkemman. Se ei voittanut ' t osituslaitteita, koska niillä ei ' ole " jonoa / Scheduler " -attribuutti.echo bfq > /sys/block/sda/queue/schedulerjuurena. (sudo ei toiminut minulle Ubuntu 18.04: ssä) Tämän pitäisi tehdä siitä heti tehokas.