linux 的 i/o 排程器是乙個以塊式 i/o 訪問儲存卷的程序,有時也叫磁碟排程器。linux i/o 排程器的工作機制是控制塊裝置的請求佇列:確定佇列中哪些 i/o 的優先順序更高以及何時下發 i/o 到塊裝置,以此來減少磁碟尋道時間,從而提高系統的吞吐量。
目前 linux 上有如下幾種 i/o 排程演算法:
1、noop - 通常用於記憶體儲存的裝置。
2、cfq - 完全公平排程器。程序平均使用io頻寬。
3、deadline - 針對延遲的排程器,每乙個 i/o,都有乙個最晚執行時間。
4、anticipatory - 啟發式排程,類似 deadline 演算法,但是引入**機制提高效能。
檢視裝置當前的 i/o 排程器:
# cat /sys/block//queue/scheduler
假設磁碟名稱是 /dev/sdc:
# cat /sys/block/sdc/queue/schedulernoop anticipatory deadline [cfq]
如何改變硬碟裝置 i/o 排程器
使用如下指令:
# echo > /sys/block//queue/scheduler
比如設定 noop 排程器:
# echo noop > /sys/block/sdc/queue/scheduler
以上設定重啟後會失效,要想重啟後配置仍生效,需要在核心啟動引數中將 elevator=noop 寫入 /boot/grub/menu.lst:
1. 備份 menu.lst 檔案
cp -p /boot/grub/menu.lst /boot/grub/menu.lst-backup
2. 更新 /boot/grub/menu.lst
將 elevator=noop 新增到檔案末尾,比如:
文末福利 ||
如何更改Linux 的I O排程器
linux 的 i o 排程器是乙個以塊式 i o 訪問儲存卷的程序,有時也叫磁碟排程器。linux i o 排程器的工作機制是控制塊裝置的請求佇列 確定佇列中哪些 i o 的優先順序更高以及何時下發 i o 到塊裝置,以此來減少磁碟尋道時間,從而提高系統的吞吐量。目前 linux 上有如下幾種 i...
Linux下io磁碟排程策略
i o 排程演算法再各個程序競爭磁碟i o的時候擔當了裁判的角色。他要求請求的次序和時機做最優化的處理,以求得盡可能最好的整體i o效能。在linux下面列出4種排程演算法 cfq completely fair queuing 完全公平的排隊 elevator cfq 這是預設演算法,對於通用伺服...
linux排程器(九) 排程器的配置引數
排程器的配置引數 proc sys kernel sched min granularity ns 4000000ns sysctl sched min granularity 表示程序最少執行時間,防止頻繁的切換,對於互動系統 如桌面 該值可以設定得較小,這樣可以保證互動得到更快的響應 見週期排程...