首頁 > 軟體

如何更改 Linux I/O 排程器來調整效能

2020-06-16 17:18:13

為了從 Linux 伺服器榨取盡可能多的效能,請了解如何更改 I/O 排程器以滿足你的需求。

Linux I/O 排程器(Linux I/O scheduler)控制核心提交讀寫請求給磁碟的方式。自從 2.6 核心以來,管理員已經能夠更改這個排程器,所以他們可以自定義他們的平台以完全適合他們的需要。

有三個排程器可供選擇,每個排程器都有其優點。這些排程器是:

  • CFQ (Completely Fair Scheduler(完全公平排程器))(cfq) :它是許多 Linux 發行版的預設排程器;它將由進程提交的同步請求放到多個進程佇列中,然後為每個佇列分配時間片以存取磁碟。
  • Noop 排程器(noop) : 基於先入先出(FIFO)佇列概念的 Linux 核心裡最簡單的 I/O 排程器。此排程程式最適合於 SSD。
  • 截止時間排程器(deadline) : 嘗試保證請求的開始服務時間。

當你想要讓 Linux 機器發揮最佳效能時,這可能是你所要做的事情之一。幸運的是,更改 I/O 排程器非常簡單。讓我告訴你怎麼做。

 

找出你有的排程器

你需要做的第一件事是找出哪個排程器正在處理你系統上的 I/O。這是從命令列完成的,你必須知道磁碟的名稱。為簡單起見,我假設磁碟是 sda。據此資訊,開啟終端視窗並輸入以下命令:

  1. cat/sys/block/sda/queue/scheduler

該命令的結果將顯示當前執行的排程程式(下圖)。

Elementary OS Loki 執行 deadline 排程器。

 

更改你的排程器

你可以通過兩種方式更改你的排程器:即時或永久。如果你即時更改排程器,它會在重新啟動後恢復到之前的預設排程器。你可能希望首先進行即時更改,以檢視哪個排程器能為你的需求帶來最佳效能。

說到你要即時改到 noop 排程器。 為此,輸入以下命令:

  1. sudoecho noop >/sys/block/hda/queue/scheduler

你可以將 noop 更改為 cfqdeadline

此更改可以在不重新啟動計算機的情況下生效。 一旦更改,I/O 排程器將會切換,(希望)你能看到效能提高(再說一次,根據你的需要而定)。

如果要將排程器更改為永久,則必須在 GRUB 組態檔中執行此操作。 為此,請輸入 sudo nano /etc/default/grub,然後修改下面的行:

  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

同樣,你可以改變 noop 為任何你需要的排程器。如果你用的是即時修改,則不必重新啟動以使新排程器生效。

這些就是修改排程器的方法了。

 

做出明智的選擇

你應該做研究,找出什麼排程器最適合你的特殊情況。要了解每個排程器的更多資訊,請檢視這些 Wiki 頁面:CFSNoopDeadline

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-03/142283.htm


IT145.com E-mail:sddin#qq.com