나는 우분투에 없지만 Fedora에서 내가 한 일이 도움이 될 수 있습니다.
BFQ는 blk-mq (Multi-Queue Block IO Queuing Mechanism) 스케줄러이므로 부팅시 blk-mq를 활성화하고 / etc / default / grub 파일을 편집하고에 추가 scsi_mod.use_blk_mq=1
해야합니다 GRUB_CMDLINE_LINUX
. 이것은 grub 파일입니다. 예를 들면 :
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"
그 후에는 grub을 업데이트해야합니다. Fedora 에서는 부팅 방법에sudo grub2-mkconfig -o /path/to/grub.cfg
따라 다른 것을 사용해야 합니다. 우분투에서는 간단히 다음을 실행할 수 있습니다.
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 및 nonmq 마감일을 잃게됩니다.
분명히 blk_mq 스케줄링 시스템은 grub에서 엘리베이터 플래그를 지원하지 않으며,보다 세밀한 제어를 제공하는 보너스와 함께 udev 규칙을 대신 사용할 수 있습니다.
/etc/udev/rules.d/60-scheduler.rules
존재하지 않는 경우 작성 하고 추가하십시오.
ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"
필요한 경우 여기에서 지적한 바와 같이 속성을 사용하여 udev 규칙에서 회전 (HDD) 장치와 비 회전 (SSD) 장치를 구별 할 수 있습니다 ATTR{queue/rotational}
. BFQ 개발자 인 Paolo Valente는 LinuxCon Europe에서 BFQ 가 낮은 지연 시간 보증의 관점에서 스케줄러 noop
또는 deadline
스케줄러 보다 더 나은 선택이 될 수 있다고 지적 했습니다. 이는 SSD에도 사용하는 것이 좋습니다.
파올로의 비교 : https://www.youtube.com/watch?v=1cjZeaCXIyM&feature=youtu.be
저장하고 다시로드하고 트리거하십시오 udev rules
.
sudo udevadm control --reload
sudo udevadm trigger