Linux系统基础知识:磁盘IO与SWAP分区_第1页
Linux系统基础知识:磁盘IO与SWAP分区_第2页
Linux系统基础知识:磁盘IO与SWAP分区_第3页
Linux系统基础知识:磁盘IO与SWAP分区_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux系统基础知识:磁盘IO与SWAP分区

在了解磁盘IO之前,我们先从硬盘的物理结构说起。

一、硬盘的物理结构

硬盘内部主要部件为磁盘盘片、传动手臂、读写磁头和主轴马达。实际数据都是写在盘片上,读写主要是通过传动手臂上的读写磁头来完成。实际运行时,主轴让磁盘盘片转动,然后传动手臂可伸展让读取头在盘片上进行读写操作。

由于单一盘片容量有限,一般硬盘都有两张以上的盘片,每个盘片有两面,都可记录信息,所以一张盘片对应着两个磁头。盘片被分为很多扇形的区域,每个区域叫一个扇区,硬盘中每个扇区的大小固定为512字节。盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道,不同盘片相同半径的磁道所组成的圆柱称为柱面。

硬盘上磁盘进行高速旋转,磁头臂在磁盘上来回移动进行数据的读取和写入。磁盘由圆心向外被划分为多个磁道,所谓摆臂在磁道上来回移动也就是摆臂在磁道间的来回移动。

二、磁盘读写时间

在了解了硬盘的基本原理之后,不难推算出,磁盘上数据读取和写入所花费的时间可以分为三个部分。

1、寻道时间

所谓寻道时间,其实就是磁臂移动到指定磁道所需要的时间,这部分时间又可以分为两部分:

寻道时间=启动磁臂的时间+常数*所需移动的磁道数

其中常数和驱动器的的硬件相关,启动磁臂的时间也和驱动器的硬件相关

2、旋转延迟

旋转延迟指的是把扇区移动到磁头下面的时间。这个时间和驱动器的转数有关,我们通常所说的7200转的硬盘的转就是这个,旋转延迟只和硬件有关。

3、传输时间

传输时间指的是从磁盘读出或将数据写入磁盘的时间,这个时间等于:所需要读写的字节数/每秒转速*每扇区的字节数

三、磁盘调度算法

通过上面硬盘读写数据所分的三部分时间不难看出,大部分参数是和硬件相关的,操作系统无力优化。只有所需移动的磁道数是可以通过操作系统来进行掌握的,所以削减所需移动的磁道数是削减整个硬盘的读写时间的唯一方法。

由于操作系统内可能会有许多进程需要调用磁盘进行读写,因此合理的支配磁头的移动以削减寻道时间就是磁盘调度算法的目的所在,几种常见的磁盘调度算法如下。

1、先来先服务算法(FCFS)

这种算法将对磁盘的IO恳求进行排队,根据先后挨次依次调度磁头。这种算法的特点是简洁,合理,但没有削减寻道时间。

2、最短寻道时间算法(SSFT)

这种算法优先执行所需读写的磁道离当前磁头最近的恳求。这保证了平均寻道时间的最短,但缺点显而易见:离当前磁头比较远的寻道恳求有可能始终得不到执行,这也就是所谓的“饥饿现象”。

3、扫描算法(SCAN)

这种算法在磁头的移动方向上选择离当前磁头所在磁道最近的恳求作为下一次服务对象,这种改进有效避开了饥饿现象,并且削减了寻道时间。但缺点依旧存在,那就是不利于最远一端的磁道访问恳求。

4、循环扫描算法(CSCAN)

也就是俗称的电梯算法,这种算法是对最短寻道时间算法的改进。这种算法就像电梯一样,只能从1楼上到15楼,然后再从15楼下到1楼。这种算法的磁头调度也是如此,磁头只能从最里磁道到磁盘最外层磁道。

然后再由最外层磁道移动到最里层磁道,磁头是单向移动的,在此基础上,才执行和最短寻道时间算法一样的,离当前磁头最近的寻道恳求。这种算法改善了SCAN算法,消退了对两端磁道恳求的不公正。

四、磁盘IO优化

除去上面通过磁盘调度算法来削减寻道时间之外,还可以通过以下几个手段来削减磁盘的IO。

1、预读

磁盘读取依靠的是机械运动,分为寻道时间、旋转延迟、传输时间三个部分,这三个部分耗时相加就是一次磁盘IO的时间,这个成本是访问内存的十万倍左右,所以说磁盘IO是特别昂贵的操作。

预读:每一次IO时,不仅仅把当前磁盘地址的数据加载到内存,同时也把相邻数据也加载到内存缓冲区中,这样当访问一个地址数据的时候,与其相邻的数据很快也会被访问到。

每次磁盘IO读取的数据我们称之为一页(page)。一页的大小与操作系统有关,一般为4k或者8k。这也就意味着读取一页内数据的时候,实际上发生了一次磁盘IO。

2、延迟写

延迟写:最近被访问的数据有可能再次被访问,因此当数据更改之后不立刻写回磁盘,而是连续放在内存中,以备接下来的恳求读取或者修改,是削减磁盘IO的另一个有效手段。

3、优化物理分布

依据磁盘原理不难看出,假如所恳求的数据在磁盘物理磁道之间是连续的,那么会削减磁头的移动距离,从而削减了寻道时间。因此相关的数据放在连续的物理空间上会削减寻道时间。

五、Swap分区

Swap分区,即交换区,Swap空间的作用可简洁描述为:

当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。

那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换,Swap交换的操作是磁盘IO的操作。

安排太多的Swap空间会铺张磁盘空间,而Swap空间太少,则系统会发生错误。通常状况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。

增加swap分区操作:

1、创建swap分区文件

#创建1G大小的swap分区文件

ddif=/dev/zeroof=/home/swapbs=1M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论