Percobaan Memakai BFQ Storage-I/O Scheduler

Submitted by w41lf0x on Sat, 04/22/2017 - 08:56

slackwareBFQ Storage-I/O Scheduler adalah sistem scheduler baru yang sampai saat ini masih menjadi 'orang luar' dari kernel linux. BFQ dikembangkan pertama kali pada tahun 2008 oleh Paolo Valente dan Fabio Checconi. Sejak pertama kali keduanya mengirimkan patch BFQ ke LKML hingga sekarang, BFQ tidak pernah mendapat tempat resmi di kernel linux. Diterima sebagai modul kernel pun tidak. Luar biasa. Sampai-sampai ada satu komentar di forum Phoronix mengenai rencana penerimaan BFQ ke dalam kernel linux untuk pertama kalinya membuat saya mesem pagi ini. Saya harus angkat jempol untuk keduanya yang tetap tidak menyerah dan bahkan bisa memperoleh banyak dukungan terutama dari kalangan pengembang perangkat-perangkat mobile.Perangkat-perangkat berdaya rendah tersebut memang sangat membutuh sistem I/O scheduler yang dapat meminimalisir I/O blocking hingga sekecil-kecilnya.

Kebanyakan distribusi linux menggunakan CFQ sebagai default I/O Scheduler. Tetapi CFQ memang belum bisa mengurangi I/O blocking apalagi jika OS sedang menjalankan proses baca-tulis berkas berukuran besar. Misalnya saat kita meng-copy ISO DVD ke harddisk maka pasti kita akan mengalami sedikit delay atau lag jika pada saat yang sama kita membuka browser atau berkas lain untuk dibaca atau ditulis. Masalah ini bukanlah soal kecepatan baca/tulis. Jadi tidak menjadi persoalan apakah kita menggunakan harddisk mekanik atau SSD. Ini soal I/O blocking. Normalnya kernel linux yang menggunakan CFQ akan mengalokasikan prioritas tertinggi I/O kepada proses copy tadi karena basis perhitungan pembagian sumber daya sistemnya adalah waktu. Semakin lama waktu suatu proses maka jumlah blok subproses hasil pembagian dari proses tersebut akan semakin banyak sehingga akan semakin panjang alokasi waktu proses copy tersebut dalam memakai I/O harddisk. Kemudian jika ada proses baru dijalankan, proses kedua harus masuk antrian dan menunggu hingga salah satu atau beberapa blok subproses dari proses copy tersebut selesai.

Berbeda dengan CFQ, BFQ tidak menggunakan pembagian I/O proses berbasis waktu, tetapi dapat langsung memberikan akses ke disk setelah blok proses sebelumnya kehabisan jatah dalam hak aksesnya. Penyusunan daftar antrian dilakukan secara internal oleh BFQ. Artinya sebuah blok I/O dari proses baru mungkin akan ditempatkan di barisan pertama meskipun diusulkan paling belakang. Hal ini menjamin setiap proses benar-benar dapat berjalan tanpa saling menghalangi dalam durasi yang lama seperti dalam kasus meng-copy ISO DVD tadi.

Maaf, saya belum bisa memberikan sebuah ulasan mengenai BFQ Storage-I/O Scheduler. Saya masih harus mendalami dan memasang beberapa program benchmark untuk dapat menganalisa kinerja sistem scheduler ini. Jadi hanya dua video hasil rekaman desktop saya:

Yang jelas BFQ memang sangat membantu untuk mengurangi waktu tunggu dari I/O tiap aplikasi yang saya buka. Bahkan proses perekaman desktop tersebut hampir tidak terlihat mengganggu jalannya aplikasi yang lain.

Kabar baik dari BFQ adalah kemungkinan besar BFQ akan masuk ke dalam kernel linux pada saat merge window untuk linux 4.12 dibuka. Mari kita tunggu saja.

Mungkin ulasan ini kurang sekali atau keliru sama sekali, silakan dikomentari. Jika ada yang berminat menggunakan BFQ di Slackware, bisa mengunduh paket kernel 4.10.12 + BFQ patches yang saya buat

Selamat mencoba.