io调度算法介绍

CFQ

CFQ算法的全写为Completely Fair Queuing。该算法的特点是按照IO请求的地址进行排序,而不是按照先来后到的顺序来进行响应。

CFQ的出发点是对IO地址进行排序,以尽量少的磁盘旋转次数来满足尽可能多的IO请求。在CFQ算法下,SAS盘的吞吐量大大提高了。但是相比于NOOP的缺点是,先来的IO请求并不一定能被满足,可能会出现饿死的情况。

Deadline scheduler

DEADLINE在CFQ的基础上,解决了IO请求饿死的极端情况。除了CFQ本身具有的IO排序队列之外,DEADLINE额外分别为读IO和写IO提供了FIFO队列。读FIFO队列的最大等待时间为500ms,写FIFO队列的最大等待时间为5s。FIFO队列内的IO请求优先级要比CFQ队列中的高,,而读FIFO队列的优先级又比写FIFO队列的优先级高。优先级可以表示如下:

FIFO(Read) > FIFO(Write) > CFQ

deadline 算法保证对于既定的 IO 请求以最小的延迟时间

在传统的SAS盘上,CFQ、DEADLINE、ANTICIPATORY都是不错的选择;对于专属的数据库服务器,DEADLINE的吞吐量和响应时间都表现良好。

然而在新兴的固态硬盘比如SSD、Fusion IO上,最简单的NOOP反而可能是最好的算法,因为其他三个算法的优化是基于缩短寻道时间的,而固态硬盘没有所谓的寻道时间且IO响应时间非常短。

时间: 2024-07-31 20:18:59

io调度算法介绍的相关文章

OpenStack入门篇(五)之KVM性能优化及IO缓存介绍

1.KVM的性能优化,介绍CPU,内存,IO性能优化 KVM CPU-->qemu进行模拟ring 3-->用户应用 (用户态,用户空间)ring 0-->操作系统 (内核态,内核空间)虚拟化难题?(1)CPU优化:上下文切换:宿主机ring 0ring 3虚拟机ring 0ring 3处理器设置-->Inter VT-x/EPT或AMD-V/RVI(V)缓存:L1-->静态内存L2.L3-->动态内存虚拟机在宿主机上是一个进程,受进程调度器的管理.容易导致Cache

Linux deadline io 调度算法

deadline算法的核心就是在传统的电梯算法中加入了请求超时的机制,该机制主要体现在两点: 1.请求超时时,对超时请求的选择. 2.没有请求超时时,当扫描完电梯最后一个request后,准备返回时,对第一个request的选择.基于以上两点,平衡了系统i/o吞吐量和响应时间. 此外,该算法还考虑到了读操作对写操作造成的饥饿. 定义了elevator_deadline调度器类型: static struct elevator_type iosched_deadline = { .ops = {

linux块设备的IO调度算法和回写机制

************************************************************************************** 參考: <Linux内核设计与实现> http://laokaddk.blog.51cto.com/368606/699028/ http://www.cnblogs.com/zhenjing/archive/2012/06/20/linux_writeback.html *************************

阿里云主机SSD实例磁盘测试及IO调度算法调整

测试背景及环境说明 阿里云ECS 主机配置: 4C8G [email protected]:~# grep -i "model name" /proc/cpuinfo model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60

LVS专题: LVS的工作模型和调度算法介绍

LVS专题: LVS的工作模型和调度算法介绍 前言 什么是负载均衡? 什么是LVS? LVS的架构: LVS的实现模型: NAT实现原理: DR实现原理: TUN实现原理: FULLNAT实现原理: LVS的调度算法 静态调度算法(4种) 动态调度算法(6种): 总结 前言 本文大概介绍一下LVS的工作方式和实现的模型以及调度算法,流程图方面只上了两张图, 如果有需要LVS各工作模式的流程图请看张小凡:LVS原理详解 什么是负载均衡? 当单台服务器性能不足时我们有两种对其进行扩展的方式, 分别是

LVS三种工作模式、十种调度算法介绍

工作模式介绍:1.Virtual server via NAT(VS-NAT)优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址.缺点:扩展性有限.当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生.假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的

Python socket编程之IO模型介绍(多路复用*)

1.I/O基础知识 1.1 什么是文件描述符? 在网络中,一个socket对象就是1个文件描述符,在文件中,1个文件句柄(即file对象)就是1个文件描述符.其实可以理解为就是一个“指针”或“句柄”,指向1个socket或file对象,当file或socket发生改变时,这个对象对应的文件描述符,也会发生相应改变. 1.2 什么是I/O 1.先了解什么是I/O? I/O(input/output),即输入/输出.操作系统会对IO设备进行编址,IO设备用操作系统分配的地址来处理自己的输入输出信息.

IO调度算法

IO调度算法的选择 一) I/O调度程序的总结 1) 当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成. 2) 每个块设备都有它自己的队列. 3) I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作. 4) 内核必须首先确定队列中一共有多少个请求,然后才开始进行调度. 二) I/O调度的4种算法 1) CFQ(Completely Fair Queuing, 完全公平排队) 特点: 在最新的内核版本和发行版中,

LVS概念类型及三种工作模式和十种调度算法介绍

一.LVS概念 LVS(Linux Virtual Server):Linux 虚拟服务器 LVS是个负载均衡设备,它不提供任何服务,用户请求到这里的时候,它是将客户需求转发至后端真正提供服务的服务,所以说后端的服务称作real server.LVS分为两段,前一段称为ipvsadm(管理集群服务的命令行工具),后面一段叫做ipvs(内核模块)[提示:LVS和iptables不能同时使用]. 二.LVS类型 LB(Load Balancing):负载均衡集群 特性:为了增加能力能力 HA(Hig