一、I/O简介

任何计算机程序都是为了执行一个特定的任务,有了输入,用户才能告诉计算机程序所需的信息,有了输出,程序运行后才能告诉用户任务的结果。输入是Input,输出是Output,因此,我们把输入输出统称为Input/Output,或者简写为IO。(来自廖雪峰官方网站)

二、KVM的I/O调度算法简介

  1. NOOP(电梯式调度程序)
    特点:NOOP 倾向饿死读而利于写。
    因为写请求比读请求更容易.写请求通过文件系统cache,不需要等一次写完成,就可以开始下一次写操作,写请求通过合并,堆积到I/O队列中.读请求需要等到它前面所有的读操作完成,才能进行下一次读操作.在读操作之间有几毫秒时间,而写请求在这之间就到来,饿死了后面的读请求.

  2. Deadline(截止时间调度程序)
    特点:通过时间以及硬盘区域进行分类,这个分类和合并要求类似于 noop 的调度程序。
    Deadline 确保了在一个截止时间内服务请求,这个截止时间是可调整的,而默认读期限短于写期限.这样就防止了写操作因为不能被读取而饿死的现象。
    Deadline 对数据库环境(ORACLE RAC,MYSQL等)。
    (来自度娘)

三、查询更改I/O调度算法

查看当前系统支持的IO调度算法:dmesg | grep -i scheduler
查看当前系统的I/O调度方法:cat /sys/block/sda/queue/scheduler
临时更改到noop电梯调度算法:echo noop > /sys/block/sda/queue/scheduler

永久更改调度算法:

  • CentOS7

    #更改为deadline
    grubby --update-kernel=ALL --args="elevator=deadline"      
    #重启
    reboot          
    cat /sys/block/sda/queue/scheduler
    #输出结果 noop [deadline] cfq
  • CentOS6
    vi /boot/grub/menu.lst
    更改到如下内容:
    kernel /boot/vmlinuz-2.6.32-504.el6 ro root=LABEL=/ elevator=deadline rhgb quiet
最后修改:2019 年 08 月 04 日 09 : 03 PM
如果觉得我的文章对你有用,请随意赞赏