如何更改Linux的I/O排程器
Linux 的 I/O 排程器是一個以塊式 I/O 訪問儲存卷的程式,有時也叫磁碟排程器。Linux I/O 排程器的工作機制是控制塊裝置的請求佇列:確定佇列中哪些 I/O 的優先順序更高以及何時下發 I/O 到塊裝置,以此來減少磁碟尋道時間,從而提高系統的吞吐量。
目前 Linux 上有如下幾種 I/O 排程演算法:
- noop – 通常用於記憶體儲存的裝置。
- cfq – 完全公平排程器。程式平均使用IO頻寬。
- Deadline – 針對延遲的排程器,每一個 I/O,都有一個最晚執行時間。
- Anticipatory – 啟發式排程,類似 Deadline 演算法,但是引入預測機制提高效能。
檢視裝置當前的 I/O 排程器:
# cat /sys/block//queue/scheduler
假設磁碟名稱是 /dev/sdc:
# cat /sys/block/sdc/queue/schedulernoop anticipatory deadline [cfq]
如何改變硬碟裝置 I/O 排程器
使用如下指令:
# echo {SCHEDULER-NAME} > /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 新增到檔案末尾,比如:
kernel /vmlinuz-2.6.16.60-0.91.1-smp root=/dev/sysvg/root splash=silent splash=off showopts elevator=noop
原文釋出時間:2017-03-27
相關文章
- Linux I/O排程器Linux
- 排程器簡介,以及Linux的排程策略Linux
- 如何監測 Linux 的磁碟 I/O 效能Linux
- Linux下的5種I/O模型與3組I/O複用Linux模型
- Linux程序排程器-CPU負載Linux負載
- Flink排程之排程器、排程策略、排程模式模式
- Linux下磁碟I/O測試Linux
- Linux裡五種I/O模型Linux模型
- 如何選擇IO排程器
- 如何在Linux系統伺服器中測試儲存/磁碟I/O效能?Linux伺服器
- Linux排程器:程序優先順序Linux
- linux程式排程Linux
- Linux命令----分析系統I/O的瓶頸Linux
- Yarn的排程器Yarn
- 調研:如何基於Linux平臺實現自主設計的排程器Linux
- Pod的排程是由排程器(kube-scheduler)
- Linux IO排程方法Linux
- Go排程器系列(2)巨集觀看排程器Go
- 計算機I/O與I/O模型計算機模型
- Go Runtime 的排程器Go
- Kubernetes 排程器
- Linux 核心排程器原始碼分析 - 初始化Linux原始碼
- Hadoop的I/O操作Hadoop
- 在 Linux 中如何使用 iotop 和 iostat 監控磁碟 I/O 活動?LinuxiOS
- linux搶佔式排程Linux
- Java I/OJava
- I/O流
- Linux之《荒島餘生》(四)I/O篇Linux
- Go runtime 排程器精講(五):排程策略Go
- Go語言排程器之主動排程(20)Go
- Go排程器系列(3)圖解排程原理Go圖解
- RxJava排程器的選擇RxJava
- Go runtime 排程器精講(二):排程器初始化Go
- 儲存器、I/O組織、微處理器
- Go語言排程器之排程main goroutine(14)GoAI
- Python教程:精簡概述I/O模型與I/O操作Python模型
- Linux 定時任務排程Linux
- MySQL中的事件排程器EVENTMySql事件