广告

本站里的文章大部分经过自行整理与测试

2017年3月25日星期六

Linux 的 I/O 调度器

目前 Linux 上有如下几种 I/O 调度算法:

  • noop : 基于先入先出(FIFO)队列概念的 Linux 内核里最简单的 I/O 调度器. 此调度程序最适合于 SSD. 通常用于内存存储的设备
  • deadline : 针对延迟的调度器, 每一个 I/O, 都有一个最晚执行时间
  • cfq (Completely Fair Scheduler) : 它是许多 Linux 发行版的默认调度器; 它将由进程提交的同步请求放到多个进程队列中, 然后为每个队列分配时间片以访问磁盘
  • anticipatory : 启发式调度,类似 Deadline 算法, 但是引入预测机制提高性能

1. 检查现在所用的调度器

# cat /sys/block/<Disk_Name>/queue/scheduler
$ cat /sys/block/sda/queue/scheduler

noop anticipatory deadline [cfq]

2. 改变硬盘设备 I/O 调度器

# echo {SCHEDULER_NAME} > /sys/block/<Disk_Name>/queue/scheduler
$ echo noop > /sys/block/sda/queue/scheduler

3. 设置

$ sudo gedit /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改为
# 在最后加入 elevator={SCHEDULER_NAME} 
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

没有评论:

发表评论