ฉันไม่ได้อยู่ใน Ubuntu แต่สิ่งที่ฉันทำใน Fedora อาจช่วยคุณได้
BFQ เป็นตัวกำหนดตารางเวลา blk-mq (Multi-Queue Block IO Queing Mechanism) ดังนั้นคุณต้องเปิดใช้ blk-mq ตอนบูตเครื่องแก้ไขไฟล์ / etc / default / grub scsi_mod.use_blk_mq=1
ของคุณและเพิ่มของคุณGRUB_CMDLINE_LINUX
นี่คือไฟล์ด้วงของฉัน ตัวอย่าง:
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"
หลังจากนั้นคุณต้องอัพเดตด้วงของคุณ บน Fedora เราจะต้องใช้sudo grub2-mkconfig -o /path/to/grub.cfg
ซึ่งแตกต่างกันไปขึ้นอยู่กับวิธีการบูต บน Ubuntu คุณสามารถเรียกใช้:
sudo update-grub
รีบูทและถ้าคุณได้รับสิ่งนี้:
cat /sys/block/sda/queue/scheduler
[mq-deadline] none
เคอร์เนลของคุณอาจถูกคอมไพล์ด้วยBFQ เป็นโมดูลและนี่อาจเป็นกรณีสำหรับ Kyber
sudo modprobe bfq
sudo cat /sys/block/sda/queue/scheduler
[mq-deadline] bfq none
คุณสามารถเพิ่มได้ในเวลาบูตโดยการเพิ่มไฟล์ที่มี/etc/modules-load.d/bfq.conf
bfq
เป็นสิ่งสำคัญที่จะต้องทราบว่าการเปิดใช้งาน blk_mq ทำให้ไม่สามารถใช้ตัวกำหนดเวลาที่ไม่ใช่ blk_mq ดังนั้นคุณจะสูญเสีย noop cfq และกำหนดเวลาที่ไม่ใช่ mq
เห็นได้ชัดว่า blk_mq ระบบการตั้งเวลาไม่รองรับการใช้ธงลิฟต์ในด้วงกฎ udev สามารถใช้แทนได้พร้อมโบนัสในการเสนอการควบคุมที่ละเอียดยิ่งขึ้น
สร้าง/etc/udev/rules.d/60-scheduler.rules
ถ้าไม่มีอยู่และเพิ่ม:
ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"
เป็นแหลมที่นี่ถ้าจำเป็นคุณสามารถแยกแยะความแตกต่างระหว่างการหมุน (HDDs) และไม่ใช่การหมุน (SSDs) อุปกรณ์ใน udev ATTR{queue/rotational}
กฎการใช้แอตทริบิวต์ โปรดทราบว่า Paolo Valente ผู้พัฒนา BFQ ชี้ไปที่ LinuxCon Europe ว่า BFQ สามารถเป็นทางเลือกที่ดีกว่าnoop
หรือdeadline
schedulers ในแง่ของการรับประกันความล่าช้าน้อยสิ่งที่ทำให้คำแนะนำที่ดีในการใช้สำหรับ SSD ด้วยเช่นกัน
การเปรียบเทียบของเปาโล: https://www.youtube.com/watch?v=1cjZeaCXIyM&feature=youtu.be
บันทึกและรีโหลดและทริกเกอร์udev rules
:
sudo udevadm control --reload
sudo udevadm trigger