如何更改 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/<Disk_Name>/queue/scheduler
假設磁盤名稱是 /dev/sdc
:
# cat /sys/block/sdc/queue/scheduler
noop anticipatory deadline [cfq]
如何改變硬盤設備 I/O 調度器
使用如下指令:
# echo {SCHEDULER-NAME} > /sys/block/<Disk_Name>/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-24
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-23 15:36:54