如何更改 Linux I/O 調度器來調整性能
Linux I/O 調度器 控制內核提交讀寫請求給磁碟的方式。自從 2.6 內核以來,管理員已經能夠更改這個調度器,所以他們可以自定義他們的平台以完全適合他們的需要。
有三個調度器可供選擇,每個調度器都有其優點。這些調度器是:
- CFQ ( Completely Fair Scheduler )(cfq) :它是許多 Linux 發行版的默認調度器;它將由進程提交的同步請求放到多個進程隊列中,然後為每個隊列分配時間片以訪問磁碟。
- Noop 調度器(noop) : 基於先入先出(FIFO)隊列概念的 Linux 內核里最簡單的 I/O 調度器。此調度程序最適合於 SSD。
- 截止時間調度器(deadline) : 嘗試保證請求的開始服務時間。
當你想要讓 Linux 機器發揮最佳性能時,這可能是你所要做的事情之一。幸運的是,更改 I/O 調度器非常簡單。讓我告訴你怎麼做。
找出你有的調度器
你需要做的第一件事是找出哪個調度器正在處理你系統上的 I/O。這是從命令行完成的,你必須知道磁碟的名稱。為簡單起見,我假設磁碟是 sda。據此信息,打開終端窗口並輸入以下命令:
cat /sys/block/sda/queue/scheduler
該命令的結果將顯示當前運行的調度程序(下圖)。
Elementary OS Loki 運行 deadline 調度器。
更改你的調度器
你可以通過兩種方式更改你的調度器:即時或永久。如果你即時更改調度器,它會在重啟後恢復到之前的默認調度器。你可能希望首先進行即時更改,以查看哪個調度器能為你的需求帶來最佳性能。
說到你要即時改到 noop 調度器。 為此,輸入以下命令:
sudo echo noop > /sys/block/hda/queue/scheduler
你可以將 noop
更改為 cfq
或 deadline
。
此更改可以在不重新啟動計算機的情況下生效。 一旦更改,I/O 調度器將會切換,(希望)你能看到性能提高(再說一次,根據你的需要而定)。
如果要將調度器更改為永久,則必須在 GRUB 配置文件中執行此操作。 為此,請輸入 sudo nano /etc/default/grub
,然後修改下面的行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
到
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
同樣,你可以改變 noop
為任何你需要的調度器。如果你用的是即時修改,則不必重新啟動以使新調度器生效。
這些就是修改調度器的方法了。
做出明智的選擇
你應該做研究,找出什麼調度器最適合你的特殊情況。要了解每個調度器的更多信息,請查看這些 Wiki 頁面:CFS、Noop和 Deadline。
via: http://www.techrepublic.com/article/how-to-change-the-linux-io-scheduler-to-fit-your-needs/
作者:Jack Wallen 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive