Linux IO调度算法
- as(Anticipatory),
- cfq(Complete Fairness Queueing),
- deadline,
- noop(No Operation).
- dmesg | grep -i scheduler
- [root@localhost ~]# dmesg | grep -i scheduler
- io scheduler noop registered
- io scheduler anticipatory registered
- io scheduler deadline registered
- io scheduler cfq registered (default)
查看当前系统的I/O调度方法:
- cat /sys/block/sda/queue/scheduler
- noop anticipatory deadline [cfq]
临地更改I/O调度方法:
- 例如:想更改到noop电梯调度算法:
- echo noop > /sys/block/sda/queue/scheduler
想永久的更改I/O调度方法:
- 修改内核引导参数,加入elevator=调度程序名
- vi /boot/grub/menu.lst
- 更改到如下内容:
- kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ elevator=deadline rhgb quiet
重启之后,查看调度方法:
- cat /sys/block/sda/queue/scheduler
- noop anticipatory [deadline] cfq
- 已经是deadline了
- 1)测试磁盘读:
- [root@test1 tmp]# echo deadline > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/sda1 of=/dev/null bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 6.81189 seconds, 92.4 MB/s
- real 0m6.833s
- user 0m0.001s
- sys 0m4.556s
- [root@test1 tmp]# echo noop > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/sda1 of=/dev/null bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 6.61902 seconds, 95.1 MB/s
- real 0m6.645s
- user 0m0.002s
- sys 0m4.540s
- [root@test1 tmp]# echo anticipatory > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/sda1 of=/dev/null bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 8.00389 seconds, 78.6 MB/s
- real 0m8.021s
- user 0m0.002s
- sys 0m4.586s
- [root@test1 tmp]# echo cfq > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/sda1 of=/dev/null bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 29.8 seconds, 21.1 MB/s
- real 0m29.826s
- user 0m0.002s
- sys 0m28.606s
结果:
- [root@test1 tmp]# echo cfq > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/zero of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 6.93058 seconds, 90.8 MB/s
- real 0m7.002s
- user 0m0.001s
- sys 0m3.525s
- [root@test1 tmp]# echo anticipatory > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/zero of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 6.79441 seconds, 92.6 MB/s
- real 0m6.964s
- user 0m0.003s
- sys 0m3.489s
- [root@test1 tmp]# echo noop > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/zero of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 9.49418 seconds, 66.3 MB/s
- real 0m9.855s
- user 0m0.002s
- sys 0m4.075s
- [root@test1 tmp]# echo deadline > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# time dd if=/dev/zero of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 6.84128 seconds, 92.0 MB/s
- real 0m6.937s
- user 0m0.002s
- sys 0m3.447s
测试结果:
- [root@test1 tmp]# echo deadline > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# dd if=/dev/sda1 of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 15.1331 seconds, 41.6 MB/s
- [root@test1 tmp]# echo cfq > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# dd if=/dev/sda1 of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 36.9544 seconds, 17.0 MB/s
- [root@test1 tmp]# echo anticipatory > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# dd if=/dev/sda1 of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 23.3617 seconds, 26.9 MB/s
- [root@test1 tmp]# echo noop > /sys/block/sda/queue/scheduler
- [root@test1 tmp]# dd if=/dev/sda1 of=/tmp/test bs=2M count=300
- 300+0 records in
- 300+0 records out
- 629145600 bytes (629 MB) copied, 17.508 seconds, 35.9 MB/s
测试结果:
- 采用cfq的实时调度,优先级为7
- ionice -c1 -n7 -ptime dd if=/dev/sda1 of=/tmp/test bs=2M count=300&
- 采用缺省的磁盘I/O调度,优先级为3
- ionice -c2 -n3 -ptime dd if=/dev/sda1 of=/tmp/test bs=2M count=300&
- 采用空闲的磁盘调度,优先级为0
- ionice -c3 -n0 -ptime dd if=/dev/sda1 of=/tmp/test bs=2M count=300&
ionice的三种调度方法,实时调度最高,其次是缺省的I/O调度,最后是空闲的磁盘调度.
Linux IO调度算法的更多相关文章
- MySQL--linux IO调度算法
==================================================================== Linux IO调度算法Linux下目前有4中IO调度算法: ...
- linux块设备的IO调度算法和回写机制
************************************************************************************** 參考: <Linux ...
- Linux IO Scheduler(Linux IO 调度器)
每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue),而每个请求队列都可以选择一个I/O调度器来协调所递交的request.I/O调度器的基本目的是将请求按照它们对应在块设 ...
- linux IO调度
I/O 调度算法再各个进程竞争磁盘I/O的时候担当了裁判的角色.他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能.在linux下面列出4种调度算法CFQ (Completely ...
- Linux IO调度器相关算法介绍(转)
IO调度器(IO Scheduler)是操作系统用来决定块设备上IO操作提交顺序的方法.存在的目的有两个,一是提高IO吞吐量,二是降低IO响应时间.然而IO吞吐量和IO响应时间往往是矛盾的,为了尽量平 ...
- IO调度算法研究1
linux kernel 2.6之后提供了四种IO调度算法,每种调度算法都有其不同的特点和应用场景,系统使用者可以通过系统提供的接口,选择使用哪种IO调度算法,以及调整IO调度算法的参数,以达到最优的 ...
- Linux IO 调度器
Linux IO Scheduler(Linux IO 调度器) 每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue),而每个请求队列都可以选择一个I/O调度器来协调所递交 ...
- 【转】linux IO子系统和文件系统读写流程
原文地址:linux IO子系统和文件系统读写流程 我们含有分析的,是基于2.6.32及其后的内核. 我们在linux上总是要保存数据,数据要么保存在文件系统里(如ext3),要么就保存在裸设备里.我 ...
- Linux IO Scheduler(Linux IO 调度器)【转】
每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue),而每个请求队列都可以选择一个I/O调度器来协调所递交的request.I/O调度器的基本目的是将请求按照它们对应在块设 ...
随机推荐
- Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次)
总体规划 服务器规划 1.建议使用两台硬件配置一模一样的服务器来作为 RAC 环境的两个物理节点 2.服务器至少需要配置两块物理网卡 3.服务器规划表: 节点 主机名 本地磁盘大小 操作系统 内存大小 ...
- SQLSERVER 修改实例名以及架构信息
1. GUI的方式 后者是 alter database 的方式修改 instance的名字 2. 在全局的安全性下面创建用户. 3. 在实例的安全性下面创建架构和用户(架构名与用户名一直, 使用新实 ...
- 校园网突围之路由器开wifi__windows版
之前有写过web版的登录介绍,但是有此人给我发邮件说web版的太麻烦,每次都要有内网才可以.在此我要说下web版的好处. 1.不用安装环境,并不是每个人电脑上都需要安装开发环境,你可以说你硬盘空间大, ...
- 错误“AxImp.exe”已退出,代码为 -1163019603【转载及个人看法】
http://blog.csdn.net/duguduchong/article/details/17166123 最近使用vs2010 在重新生成解决方案的时候出现 “AxImp.exe”已退出, ...
- Dubbo学习(五) Dubbo 从下载到编译成功
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广 ...
- Java容器深入浅出之HashSet、TreeSet和EnumSet
Java集合中的Set接口,定义的是一类无顺序的.不可重复的对象集合.如果尝试添加相同的元素,add()方法会返回false,同时添加失败.Set接口包括3个主要的实现类:HashSet.TreeSe ...
- 计算机网络【6】—— 从浏览器输入URL到显示页面发生了什么
当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP ...
- Java机器学习框架deeplearing4j入门教程
1.添加项目maven添加依赖 or 导入jar包 or 使用jvm <project xmlns="http://maven.apache.org/POM/4.0.0" x ...
- Qss 样式表的尝试
QLineEdit{ border:1px solid #137eb6; padding:2px; background-color:#F5F5F5; } QToolTip{ border:1px s ...
- python模拟浏览器爬取数据
爬虫新手大坑:爬取数据的时候一定要设置header伪装成浏览器!!!! 在爬取某财经网站数据时由于没有设置Header信息,直接被封掉了ip 后来设置了Accept.Connection.User-A ...