Pada umumnya, kernel Linux menggunakan mq-deadline sebagai scheduler I/O standar. Untuk mendapatkan performa lebih, ada scheduler bernama BFQ. Bagaimana cara menggunakan scheduler BFQ di Linux?

Berkenalan Dengan BFQ Scheduler

Adalah BFQ alias Budget Fair Queueing, sebuah salah satu scheduler di Linux yang menawarkan responsivitas tinggi dan low latency. Dengan BFQ, kegiatan copy/paste berkas berasa cepat, meskipun kamu menggunakan HDD. Masih jarang distro GNU/Linux membawakan BFQ sebagai default scheduler. Yang saya tahu hanya CachyOS, sebuah distro yang fokus pada improvisasi performa.

Kamu bisa mengetahui scheduler apa yang kamu gunakan sekarang dengan perintah ini.

$ cat /sys/block/sdX/queue/scheduler
[mq-deadline] kyber bfq none

Hasil di atas menandakan saya sedang menggunakan mq-deadline di Void GNU/Linux saya.

Cara Set Default Scheduler BFQ di Linux

Kita bisa mengganti scheduler yang kita inginkan, misalnya BFQ.

Lewat Konfigurasi Kernel

bfq

BFQ

Kita bisa mematikan scheduler lain selain BFQ di menu I/O Scheduler ketika mengonfigurasi kernel. Harap diingat, langkah ini dilakukan saat kompilasi kernel.

udev

Kita bisa menggunakan udev rules. Pertama buat berkas di /etc/udev/rules.d bernama 60-io-schedulers.rules.

# vim /etc/udev/rules.d/60-io-schedulers.rules

Disini saya ingin menerapkan scheduler BFQ di /dev/sdb.

ACTION=="add|change", KERNEL=="sdb", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq"

Selesai dan simpan berkasnya. Lakukan ini agar perubahan udev dapat berjalan.

$ sudo udevadm trigger

Jika sudah, periksa scheduler yang sekarang kamu gunakan.

$ cat /sys/block/sdb/queue/scheduler
mq-deadline kyber [bfq] none

GRUB Config

Selain udev dan konfigurasi kernel, penerapan BFQ dapat dilakukan dengan GRUB.

Buka /etc/default/grub dengan text editor kamu.

$ sudo vim /etc/default/grub

Carilah GRUB_CMDLINE_LINUX dan tambahkan scsi_mod.use_blk_mq=1.

GRUB_CMDLINE_LINUX="scsi_mod.use_blk_mq=1"

Jangan lupa memperbarui konfigurasi grub.

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Selesai dan periksa scheduler yang kamu gunakan sekarang.