【校招VIP】linux常用I/O调度算法及更改

1天前 收藏 0 评论 0 java开发

【校招VIP】linux常用I/O调度算法及更改

转载声明:文章来源https://blog.csdn.net/ZH5610/article/details/79351221

I/O

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

1.两种调度程序

1) NOOP(电梯式调度程序)

特点: NOOP倾向饿死读而利于写.

因为写请求比读请求更容易.写请求通过文件系统cache,不需要等一次写完成,就可以开始下一次写操作,写请求通过合并,堆积到I/O队列中.读请求需要等到它前面所有的读操作完成,才能进行下一次读操作.在读操作之间有几毫秒时间,而写请求在这之间就到来,饿死了后面的读请求.

2) Deadline(截止时间调度程序)

特点: 通过时间以及硬盘区域进行分类,这个分类和合并要求类似于noop的调度程序.

Deadline确保了在一个截止时间内服务请求,这个截止时间是可调整的,而默认读期限短于写期限.这样就防止了写操作因为不能被读取而饿死的现象.

Deadline对数据库环境(ORACLE RAC,MYSQL等)

2.查看当前系统支持的IO调度算法

3.查看当前系统的I/O调度方法:

4.临时的更改I/O调度方法:

例如:想更改到noop电梯调度算法:

echo noop > /sys/block/sda/queue/scheduler

5.永久更改调度算法:

CentOS7:

[root@localhost ~]# grubby --update-kernel=ALL --args="elevator=deadline"

[root@localhost ~]# reboot

[root@localhost ~]# cat /sys/block/sda/queue/scheduler

noop [deadline] cfq

CentOS6:

# vim /boot/grub/menu.lst

更改到如下内容:

kernel /boot/vmlinuz-2。6。32-504.el6 ro root=LABEL=/ elevator=deadline rhgb quiet

C 0条回复 评论

帖子还没人回复快来抢沙发