無法在 Kubuntu 19.04 上設置 CFQ 電梯

無法在 Kubuntu 19.04 上設置 CFQ 電梯

您無法在 Kubuntu 19.04 中選擇 CFQ 調度程序,因為它已從 5.0 核心中刪除。就我而言,我需要 CFQ,因為當 Windows 10 作為來賓 SO 運行虛擬機器時,它可以為我的旋轉硬碟提供最佳效能,其他調度程式會使系統無法使用。預設情況下,安裝中的 Kubuntu 19.04 僅提供 2 個電梯 mq-deadline,在我的情況下,沒有一個電梯的性能比 CFQ 差很多。

sudo cat/sys/block/sda/queue/scheduler mq-deadline none

只是我必須嘗試使用預設情況下安裝中未出現的另外 2 個調度程序,這些調度程序是 BFQ 和 Kyber。

接下來我將介紹如何啟用 BFQ 和 Kyber 模組

1)首先使用以下命令驗證系統中是否存在模組:

sudo modprobe bfq sudo modprobe kyber-iosched

如果沒有錯誤,您可以驗證模組是否已使用命令加載

sudo cat/sys/block/sda/queue/scheduler

必須返回

mq-deadline [bfq] kyber none

2)使這些模組隨系統啟動而載入:

sudo -i echo kyber-iosched > /etc/modules-load.d/kyber-oisched.conf echo bfq > /etc/modules-load.d/bfq.conf

3)下一步是告訴系統使用哪個調度程序,如果檔案不存在,則建立一個檔案:

/etc/udev/rules.d/60-scheduler.rules

與以下幾行

# set cfq scheduler 
ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
ACTION=="add|change",KERNEL=="sr[0-9]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"

如果您想嘗試 kyber 而不是 BFQ,請將“bfq”行的最後一個單字替換為“kyber”

4)使系統識別變化

sudo udevadm 控制--重新載入; sudo udevadm 觸發器

並透過以下方式驗證更改

sudo cat/sys/block/sda/queue/scheduler

mq-deadline kyber [bfq] none

完成的。

資料來源:

https://community.chakralinux.org/t/how-to-enable-the-bfq-io-scheduler-on-kernel-4-12/6418

https://unix.stackexchange.com/questions/375600/how-to-enable-and-use-the-bfq-scheduler#376136

答案1

根據您的核心版本,CFQ 可能會消失。從核心 5.0 開始它已被刪除。這是相關提交組

答案2

Ubuntu 19.04使用5.0內核,因此CFQ和Deadline不再可用。

對於大多數工作負載,甚至在 HDD 上,使用 mq-deadline 調度程序與使用任何舊調度程序一樣高效。僅對於僅順序磁碟讀取/寫入的工作負載,沒有任何其他幹擾,舊的調度程序更快。

答案3

在具有普通老式旋轉硬碟的傳統筆記型電腦上,BFQ 對於擁有回應系統至關重要,而其他任務則在後台存取磁碟。以前Ubuntu通用內核使用cfq:

    $ zgrep IOSCHED /boot/config-*-generic
    ...
    /boot/config-4.13.0-36-generic:CONFIG_DEFAULT_IOSCHED="cfq"

升級後,Ubuntu 核心已刪除 CFQ(見上文),我發現了這個預設值:

    $ cat /sys/block/sda/queue/scheduler
    [mq-deadline] none

由於後台磁碟活動存在極大的延遲,這是不可接受的。我認為對於具有 SDD/NVMe 海量儲存的現代硬體來說,這不是一個問題。

正如OP所說,切換到bfq解決了延遲問題。

馬可·甘貝羅尼

相關內容