博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 查看io调度策略,磁盘IO调度策略
阅读量:6903 次
发布时间:2019-06-27

本文共 1015 字,大约阅读时间需要 3 分钟。

简介

IO调度是决定读或写请求执行的内核部分。 Linux内核有四个选择[noop] anticipatory deadline cfq ,但大多数发行版使用默认的“CFQ”(完全公平队列)调度,它自2.6.18版本后一直是Linux的默认情况下的调度策略。这通常是一个很好的全面调度,并应提供良好的性能,同时共享访问驱动器“完全公平”这是试图在同一时间访问一个驱动器之间的所有不同的进程。在硬盘驱动器上,它似乎不辜负它的名字。

修改调度策略

更改的IO调度是很容易的。你并不需要更新到一个新的内核,甚至不必重新启动。这意味着你可以随时改变这个值并且看到他的效果;

比如

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

less /sys/block/sdb/queue/scheduler

[noop] anticipatory deadline cfq

修改为另外一个调度策略

echo cfq > /sys/block/sdb/queue/scheduler

当你下一次进入时,调度策略就生效了;

修改为默认的调度策略

如上所说,只是修改调度策略很容易,但是如果重启后,修改的调度策略就会失效,要想修改默认的调度策略,需要修改内核参数

如要修改为默认的deadline

elevator=deadline

哪一个调度策略是最好的?

光说无用,只能通过实验来说明结论,本人没有测试,不能心乱下结论;所有的调度策略(除了noop)都有相关的knobs参数可以调整来达到他们的最佳性能,他们通常放在

/sys/block/sdX/queue/iosched/下面

比如闪存的一个有效调整如下

echo 1 > /sys/block/sdb/queue/iosched/fifo_batch

有些linux内核并没有内置所有的调度策略,他们可能作为一个模块被编译,如果作为一个模块编译需要调用相关的模块才能改变调度策略;

简要说明4种调度策略;

NOOP:将所有的写入放入一个简单的FIFO队列并且合并请求来提供性能;

The NOOP scheduler inserts all incoming I/O requests into a simple FIFO queue and implements request merging.

CFQ:给所有同步进程分配时间片,然后才排队访问磁盘;

转载地址:http://oqodl.baihongyu.com/

你可能感兴趣的文章
OK335xS psplash Screen 移植
查看>>
drop.delete.trauncat的区别
查看>>
状态栏 隐藏问题
查看>>
IIS
查看>>
ul li css 做横向菜单
查看>>
[转载]在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法...
查看>>
sencha touch 2--audio
查看>>
详细介绍Linux /etc/group文件
查看>>
解决w3wp.exe内存占用过高的方法
查看>>
basic4android 开发教程翻译(五)Android进程及activitys 生存周期
查看>>
设计模式--工厂方法模式
查看>>
教你如何迅速秒杀掉:99%的海量数据处理面试题
查看>>
使用FFmpeg捕获一帧摄像头图像
查看>>
请问在数据库中怎样用模糊查询查找含有通配符的项,比如 like ' ' 我要查找含有“%”的项,怎么查?...
查看>>
使用webdriver和beautifulsoup下载国家地理图片
查看>>
dsp 链接命令文件的写法
查看>>
C#在64位操作系统上连接Oracle的问题和解决方案
查看>>
使用 IntraWeb (11) - 基本控件之 TIWButton
查看>>
Python数据结构——散列表
查看>>
javaScript之function定义
查看>>