磁盘调度算法 磁盘调度算法比较常见的有以下四种: 先来先服务算法(FCFS) 最短寻道时间优先算法(SSTF) 扫描算法(SCAN) 循环扫描算法(CSCAN) ---- 先来先服务算法(FCFS,First...但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。...,其平均寻道距离较大,故FCFS算法仅适用于请求磁盘I/O的进程数目较少的场合。 ...---- 最短寻道时间优先(SSTF,Shortest Seek Time First) 要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。但这种算法不能保证平均寻道时间最短。...---- 循环扫描算法(CSCAN) SCAN算法既能获得较好的寻道性能,又能防止“饥饿”现象,故被广泛用于大、中、小型机器和网络中的磁盘调度。
→ 平均访问时间 = 寻道时间 + 旋转延迟时间 三、磁盘调度算法 3.0 磁盘读写时间的影响因素 (1)寻道时间 (2)旋转延迟时间 (3)数据传输时间 在以上3者中,前两者为机械运动...在两个机械运动中,寻道时间又相对较长,因此,寻道时间居于支配地位。所以,为了提高磁盘的读写效率,需要降低磁盘的寻道时间,实现的手段则是磁盘调度。下面我们陆续来了解一下主要的磁盘调度算法。...3.3 短寻道优先算法 短寻道优先则考虑当前磁头离谁的数据最近,谁就优先。由于寻道在磁盘访问时间中占的比重最大,因此此种策略能够缩短磁盘访问时间。 ...这里的总寻道数为:1+4+16+1+24+8=54,比短寻道优先节省了3个磁道的寻道时间。 ...四、关于固态盘 前面的介绍我们可以知道:磁盘低下的瓶颈在于寻道和旋转延迟,而寻道和旋转操作之所以效率低下的原因又在于它们都是机械运动(磁臂的直线来回运动和磁盘的旋转运动)。
HDD机械硬盘的性能 性能指标: IOPS = 1000 / (寻道时间 Average Seek Time + 旋转延迟 Average Latency ) 寻道时间(Average Seek Time...从公式可以得出,寻道时间越短,I/O操作越快,IOPS就越高。...降低寻道时间 想提高存储的IOPS性能,就要想办法减小分母上的数值。由于旋转延迟是固定的(除非购买更快转速的磁盘),所以唯一存在的变量就是寻道时间。...很容易理解,顺序的工作负载越多,磁头需要(大幅度)移动的机会就越少,寻道时间也就越少。高度顺序性的工作负载最终的结果就是更快的磁盘响应时间和更高的数据吞吐量(throughput)。...还有一种减少寻道时间的技术称为“磁盘短行程技术”(short stroking),即将数据存放在磁盘外缘的轨道上,从而减少寻道时间。
对于控制器来说,它能够控制一个磁盘驱动程序完成寻道操作,同时让其他驱动程序等待寻道结束。...磁盘臂调度算法 下面我们来探讨一下关于影响磁盘读写的算法,一般情况下,影响磁盘快读写的时间由下面几个因素决定 寻道时间 - 寻道时间指的就是将磁盘臂移动到需要读取磁盘块上的时间 旋转延迟 - 等待合适的扇区旋转到磁头下所需的时间...实际数据的读取或者写入时间 这三种时间参数也是磁盘寻道的过程。...一般情况下,寻道时间对总时间的影响最大,所以,有效的降低寻道时间能够提高磁盘的读取速度。...如果下一个寻道请求到来时恰好没有磁盘臂处于正确的位置,那么驱动程序会在刚刚完成传输的驱动器上发出一个新的寻道命令并等待,等待下一次中断到来时检查哪个驱动器处于闲置状态。
平均寻道长度 平均寻道长度是磁盘调度算法的性能指标之一,用于评估磁头在访问磁盘上的数据时的平均移动距离。...先来先服务(FCFS)算法: 平均寻道长度 = 所有磁头移动距离之和 / 磁头移动的请求数量 该算法按照磁盘请求到达的顺序依次进行处理,即先来的请求先被满足。...因此,平均寻道长度取决于磁盘请求的顺序。...先来先服务算法(FCFS) 根据进程请求访问磁道的先后顺序进行调度 优点:对每个进程都是公平的 缺点:请求访问的磁盘很分散的话,性能很差,寻道时间长 例题: 假设磁头的初始位置是100号磁道,有多个进程先后陆续地请求访问...:498/9=55.3 最短寻道时间优先(SSTF) 根据其要求访问的磁道与当前的磁头所在磁道距离最近进行调度以使每次的寻道时间最短,但并不能保证平均寻道时间最短 优点:性能较好,平均寻道时间短 缺点
其中寻道是磁盘较为耗时的部分,因此如果请求顺序得当,可以节省一些不必要的寻道时间。 寻道算法有几种?...先来先服务算法 最短寻道时间优先算法 扫描算法 循环扫描算法 LOOK与C-LOOK算法 假设磁头的初始位置在53磁道。...先来先服务算法 如果请求的顺序如下: 98,183,37,122,14,124,65,67 那么磁盘的写入顺序如下图: 大量应用进程竞争使用磁道,访问的磁道一般比较分散,这种算法性能低下,寻道时间过长...最短寻道算法 该算法优先选择从当前磁头位置所需寻道时间最短的请求, 如果请求的顺序如下: 98,183,37,122,14,124,65,67 那么磁盘的写入顺序为:65,67,37,14,98,122...,如下图: 该算法相对于先来先服务寻道时间会减少很多,但是会造成饥饿现象,因为我们的磁盘的请求随时都可能产生,假设后续的请求都是小于183磁道,那么183磁道的请求永远不会被响应,于是就产生了饥饿现象
这部分时间叫寻道时间。...寻道时间,现代磁盘大概在3-15ms,其中寻道时间大小主要受磁头当前所在位置和目标磁道所在位置相对距离的影响 第二步,找到目标磁道后通过盘面旋转,将目标扇区移动到磁头的正下方,这部分时间叫旋转延迟。...两种方案的对于旋转延迟、和存取时间上表现的性能是一样的,主要区别是在寻道时间的表现上: 假如采用第一种,那么这样磁头就需要在3000多个磁道间不停地跳来跳去,这样磁盘的寻道时间就降不下来。...而对于方案二,假如对于磁盘C,只需要在磁头在1-1000个磁道间移动就可以了,大大降低了寻道时间。 所以所有的操作系统采用的都是方案二,没有用方案一的。...所以,操作系统通过按磁道对应的柱面划分分区,来降低磁盘IO所花费的的寻道时间 ,最终提高磁盘的读写性能。
一、在磁盘上进行一次读写操作需要哪几部分时间?其中哪部分时间最长? 在磁盘上进行一次读写操作花费的时间由寻道时间,延迟时间和传输时间决定。其中寻道时间是将磁头移动到指定磁道所需要的时间。...延迟时间是磁头定位到某个磁道的扇区(块号)所需要的时间,传输时间是从磁盘读出或向磁盘写入数据所经历的时间。一般来说,寻道时间因为要移动磁臂,所以占用的时间最长。...寻道时间对于一次磁盘访问的影响是最大的,如果存在同一个盘面的不同磁道,那么磁臂必要移动。...一、磁盘地址结构:柱面号、盘面号、扇区号 二、读写时间 (1)寻道时间:将磁头移动到指定磁道所需要的时间。 (2)延迟时间:磁头定位到某一磁道的扇区所需要的时间。...三、调度算法 (1)先来先服务 (2)最短寻道时间优先:选择与当前磁头所在磁道距离最近的请求 (3)扫描算法:选择磁头当前移动方向上,选择与当前磁头所在磁道距离最近的请求 (4)循环扫描:在扫描算法的基础上规定磁头单向移动来提供服务
、旋转延迟和数据传输时间三部分构成) 2)寻道时间:磁头移动到数据所在磁道的时间 7200 rpm的硬盘平均物理寻道时间是9ms 10000 rpm的硬盘平均物理寻道时间是6ms 15000...rpm的硬盘平均物理寻道时间是4ms 3)旋转延迟时间:磁头移动到数据所在磁道后,数据转到磁头下的时间(旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示) 7200 rpm的磁盘平均旋转延迟大约为.../2 = 2ms 4)数据传输时间:忽略不计(由于磁盘是机械运动,浪费的时间主要在寻道和旋转时间上) 5.磁盘两大关键指标 1)IOPS IOPS (Input/Output Per Second...计算方法:IOPS = 1000 ms/ (寻道时间 + 旋转延迟 + 数据传输时间) 7200 rpm的磁盘IOPS = 1000 / (9 + 4.17) = 76 IOPS 10000...,浪费的时间主要在寻道和旋转时间上) 2)吞吐量 吞吐量即磁盘每秒读出或写入的数据量,通常用MB/s 3)IOPS和吞吐量的场景和关系 a.关注IOPS的场景:随机读写频繁的应用,如OLTP
磁盘读写耗时 在了解了磁盘的结构之后,可以看出来磁盘读写耗时主要如下: 寻道时间:磁头移动到指定磁道所需要的时间。 旋转时间:磁头在某个磁道上时,扇区移动到磁头下的时间。...磁盘读写耗时主要是花费在寻道和旋转时间上了,而从扇区读写数据通常较快,这也是预读能大幅提高性能的原因所在。...磁盘调度算法 磁盘读写耗时主要是花费在寻道和旋转时间上(前2个是机械运动),且这2个机械运动中瓶颈在于寻道时间,为了提高磁盘的读写效率,需要降低磁盘的寻道时间,实现的手段则是磁盘调度。...短任务优先STF(Shortest Task First):读写数据较少的先执行,但是由于磁盘读写主要是花在寻道和旋转因此该方案收益不大。...短寻道优先SSF(Shortest Seek First):考虑当前磁头离谁的数据最近,谁就优先,此种策略似乎正中要害,能够缩短磁盘访问时间,但是如果在极端场景下反而不太好,比如来回的闪电型走位。
IO 命令个数决定 完整的IO操作 - 当控制器对硬盘发出一个IO操作指令的时候,磁盘的磁头臂带动读写磁头离开着陆区,然后移动到要操作初始数据块所在的磁道正上方,此过程为寻道,消耗的时间为寻道时间...- 磁头等到盘片旋转到初始数据块所在扇区的正上方,此时才能进行数据的读取,这个过程称之为旋转时间 - 然后读取相应数据,直到完成这次IO所操作的全部数据,这个过程所花费的时间称之为数据传送时间 寻道时间...全程寻道时间: 磁头横跨整个磁盘的宽度所用的时间(着陆区 --> 最外层0磁道) 平均寻道时间: 一般为全程寻道时间的1/3 道间寻道时间: 磁头在相邻磁道之间所用的时间 旋转时延 决定于主轴的转动速度...,计算其完成一次IO所需要的时间来推算其IOPS - IOTime = 寻道时间 + 60s/转速/2 + IOChunkSize/传输速度 - IOPS = 1/IOTime = 1 / (寻道时间...+ 60s/转速/2 + IOChunkSize/传输速度) 单个IO大小 | 寻道时间(ms) | 旋转延迟(ms) | c传输时延(ms) | IO服务时间(ms) | IOPS | - | -
扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节) ?...图3 磁盘容量计算 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 图3中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图3中每条磁道有12个扇区,所以此磁盘的容量为...磁盘读取响应时间 寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。...小结一下:从上面的指标来看、其实最重要的、或者说、我们最关心的应该只有两个:寻道时间;旋转延迟。 读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。...为提高磁盘传输效率,软件应着重考虑减少寻道时间和延迟时间。 块/簇 概述 磁盘块/簇(虚拟出来的)。 块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。
磁盘综合计算题,通常会考察你如下几个问题: ①共有多少个柱面? ②每道存储多少字节? ③盘组总存储容量是多少? ④数据传输速率是多少? ⑤若读取xxx数据,计算所需时间?...记住下面公式: 柱面 = 有效存储区域 * 道密度 补充一点的是,柱面数 = 道数,有多少柱面就有多少道。有效存储区域是有效半径,也就是用(外直径 - 内直径)除以2。...4.数据传输速率: 数据传输速率 = 每条磁道容量 * 磁盘转速 每条磁道容量 其实就是 每道信息量。...一定注意题中给你的单位,要是每秒(/s)的话,通常题干给你磁盘转速单位是 rpm (转/每分钟),这时你就得换算每秒多少转,用60/磁盘转速 5.求若读取xxx数据,计算所需时间: 总时间 = 平均寻道时间...平均寻道时间 就是 道数 * 寻道时间。 磁头读写时间 就是 题干给你数据量除以数据传输速率。 同样注意,单位换算。
java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承 java.lang.Thread...9) Java内存模型是什么? Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。...可传递性 我强烈建议大家阅读《Java并发编程实践》第十六章来加深对Java内存模型的理解。 10) Java中的volatile 变量是什么?...13) Java中如何停止一个线程? Java提供了很丰富的API但没有为停止线程提供API。...在Java里面没有办法强制启动一个线程,它是被线程调度器控制着且Java没有公布相关的API。 52) Java中的fork join框架是什么?
这是HDFS最核心的特性了,把大量数据部署在便宜的硬件上,即使其中某些磁盘出现故障,HDFS也能很快恢复丢失的数据。 2、简单一致性。...5、数据块(block),像Linux系统每个磁盘有数据读和写的最小单位:512字节, 而HDFS也有同样的概念,只不过大小变成了64M,这是因为HDFS需要多次读取,而读取是要不断寻道的,我们要尽量让寻道时间相比数据传输时间最小...,如果寻道时间为传输时间百分之一,寻道时间为10ms,传输速度100MB/s,那么块大小就是100MB。...当文件小于64MB时,系统同意会分配一个Block给这个文件,但对于实际磁盘资源是没有浪费的。 6、对于大量小文件,HDFS提供了两种容器,将文件统一管理:SequenceFile和MapFile。...读完本文可以对HDFS有个基本的了解,具体原理细节还是要看书,除此之外就是还有会用Java进行HDFS操作了。
02 PART 磁盘相关知识 A 磁盘全局参数 ?...备注:早些年磁盘每个磁道扇区数量相同,可以用上面的公式计算磁盘容量;现代磁盘每个磁道扇区数量不同,故上面的磁盘容量计算公式已经不适用。...HDD磁盘延时概述 1)寻道时间 1.1定义:将读写磁头移动至正确的磁道上所需要的时间 1.2优化措施:提高磁头移动精度和速度 1.3寻道时间与IOPS关系:寻道时间越短,IOPS越高 2)旋转延迟...IOPS计算 1)IOPS计算方法 IOPS = 1000ms/ (寻道时间+旋转延迟+数据传输时间) 小提示:数据传输时间非常小,可以忽略不计 2)寻道时间 7200转/分的STAT硬盘平均物理寻道时间是...9ms 10000转/分的STAT硬盘平均物理寻道时间是6ms 15000转/分的SAS硬盘平均物理寻道时间是4ms 3)旋转延迟时间 7200 rpm的磁盘平均旋转延迟大约为60*1000/7200
磁臂的移动速度,即寻道耗费的时间相对较长,因此要提高磁盘访问时间,就需要尽可能提高寻道时间,或者减少寻道次数,尽量让一次数据的读写,都在一个磁道上完成。...每次磁盘访问的主要时间都花费在了磁臂寻道和磁头旋转上,而数据传输的耗时,确可以忽略不计。...---- SSTF磁盘调度 短寻道优先的策略在于,先将位于当前磁头位置最近的磁盘读取请求处理掉,但是这样会导致部分请求的饥饿问题。...---- SCAN磁盘调度 SCAN磁盘调度结合了短寻道优先策略和移动过程中顺带处理磁盘读取请求的特点,可以说已经比较完美了,但是该调度策略哈斯存在一些问题: 因为是来回扫描,因此位于中间的请求被处理的优先级还是较高...并且,如果电梯会先往最近的楼层移动,符合最短寻道原则。 但是,可以看出,中间楼层用户乘坐电梯的机会要更大一些。
而HDD硬盘读取响应时间可以分为以下几个阶段: 寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。...不错,应用程序(数据库)只能根据需要一次又一次的发行I/O请求,HDD硬盘寻道,读取数据,再传回给应用程序。这就是最令所有数据库厂商所深恶痛绝的“随机I/O”。...为了读3个数据块,寻道了30个磁道,浪费了90%的寻道时间。 也许有些爱思考的同学又会想到,那我们为啥不整合一下I/O请求,排序后按照下面的步骤寻道呢?...0磁道 --> 4磁道(读数据块) --> 5磁道(读数据块) --> 9磁道(读数据块) 这样的话,一次0到9的寻道就解决了所有问题,效率提高了200%。...综上所述,传统的HDD硬盘,寻道时间 最容易成为整个系统的I/O瓶颈。 今天就写到这儿吧,需要干正经工作了。 下次更新和大家继续聊ORACLE数据库如何优化这个问题的,欢迎继续关注!
领取专属 10元无门槛券
手把手带您无忧上云