而每个组件之间都是采用不同长度的块来管理磁盘数据的。 Page Cache 是以页为单位的,Linux 页大小一般是 4KB 文件系统是以块(block)为单位来管理的。...使用 dumpe2fs 可以查看,一般一个块默认是 4KB 通用块层是以段为单位来处理磁盘 IO 请求的,一个段为一个页或者是页的一部分 IO 调度程序通过 DMA 方式传输 N 个扇区到内存,扇区一般为...512 字节 硬盘也是采用“扇区”的管理和传输数据的 可以看到,虽然我们从用户角度确实是只读了 1 个字节(开篇的代码中我们只给这次磁盘IO留了一个字节的缓存区)。...但是在整个内核工作流中,最小的工作单位是磁盘的扇区,为512字节,比1个字节要大的多。 另外 block、page cache 等高层组件工作单位更大。...其中 Page Cache 的大小是一个内存页 4KB。所以一般一次磁盘读取是多个扇区(512字节)一起进行的。
大家见过老式的留声机吗?留声机上使用的唱片和我们的磁盘盘片非常相似,只不过留声机只有一个磁头,而硬盘是上下双磁头,盘片在两个磁头中间高速旋转,大体是长成这个样子。 ?...在磁盘上每个同心圆是磁道,从圆心向外呈放射状地产生分割线(扇骨),将每个磁道等分为若干弧段,每个弧段就是一个扇区。每个扇区的大小是固定的,为 512Byte。扇区也是磁盘的最小存储单位。...而HDD硬盘读取响应时间可以分为以下几个阶段: 寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。...ORACLE数据库是以数据块为最小单位进行I/O操作的,数据块大小有几个选择:2K,4K,8K,16K,32K. 由数据库参数db_block_size控制,默认是8K。...关于这个我会在以后的文章里详细解释,这里就不赘述了。 既然记录被初次存储到数据库的过程的确没有受到多少HDD硬盘读取响应时间的影响。但是数据只是为了写进数据库里吗?
图1 扇区 和 磁道 下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。...磁盘读取响应时间 寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。...为提高磁盘传输效率,软件应着重考虑减少寻道时间和延迟时间。 块/簇 概述 磁盘块/簇(虚拟出来的)。 块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。...为什么存在磁盘块? 读取方便:由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。...page 操作系统经常与内存和硬盘这两种存储设备进行通信,类似于“块”的概念,都需要一种虚拟的基本单位。所以,与内存操作,是虚拟一个页的概念来作为最小单位。与硬盘打交道,就是以块为最小单位。
Page Cache是以页为单位的,Linux页大小一般是4KB(避免有大神挑刺,这里说下Linux能设置大内存页) 文件系统是以块为单位来管理的。...使用dumpe2fs可以查看,一般一个块默认是4KB 通用块层是以段为单位来处理磁盘IO请求的,一个段为一个页或者是页的一部分 IO调度程序通过DMA方式传输N个扇区到内存,扇区一般为512字节 硬盘也是采用...“扇区”的管理和传输数据的 可以看到,虽然我们从用户角度确实是只读了1个字节(开篇的代码中我们只给这次磁盘IO留了一个字节的缓存区)。...但是在整个内核工作流中,最小的工作单位是磁盘的扇区,为512字节,比1个字节要大的多。另外block、page cache等高层组件工作单位更大,所以实际一次磁盘读取是很多字节一起进行的。...假设段就是一个内存页的话,一次磁盘IO就是4KB(8个512字节的扇区)一起进行读取。 Linux内核中我们没有讲到的是还有一套复杂的预读取的策略。
该数据集所包含的数据是以 "等水厚度 "为单位,以厘米为单位表示水的垂直范围的质量偏差。更多细节请参见提供者的月度质量网格概述。...每个中心都是GRACE地面系统的一部分,并产生本数据集所使用的二级数据(球面谐波场)。输出包括重力场和用于计算它们的纠偏场的球面谐波系数。由于每个中心独立产生系数,结果可能略有不同。...对大多数用户来说,建议使用所有三个数据集的平均值。更多的细节请见供应商的选择解决方案页面。 注意 由于GRACE观测的采样和后处理,小空间尺度的表面质量变化往往被削弱。...因此,用户应将GRCTellus陆地数据乘以NASA/GRACE/MASS_GRIDS/LAND_AUX_2014上的比例网格。...由球面谐波Level-2数据处理的GRCTellus陆地网格不适合准确量化格陵兰岛或南极洲、冰川和冰盖的冰量变化。对于这些地区,建议使用JPL的mascon解决方案,可作为以下图片集。
磁盘中每一个磁道被等分为若干个相同的弧段,这些弧段便是磁盘的扇区,扇区是磁盘寻址的最小的单位。扇区的大小都是512字节。虽然距离圆心越远,扇区的长度越大,但是,我们可以使用存储的密度加以控制。...现在有一块磁盘,相关数据如下:问:LBA地址为123的扇区位置? 为什么OS要对存储结构做逻辑抽象呢?直接用CHS不可以吗? 便于管理。 不想让代码和硬件强耦合。...虽然磁盘访问的最小单位是512字节,但是依旧很小!OS内的文件系统定制的进行多个扇区的读取(一次读取4KB的数据)哪怕只想读取一个比特位,必须将4KBload到内存,进行读取或者读取。...但这背后有一个原理叫做:局部性原理:从理论上证明了计算机要访问一段数据时,这段数据周围的数据也有较大的可能性被访问到。所以,真实的内存是以4KB为单位被操作系统读取的。...关于Inode属性集合 由于每个文件都有Inode,为了区分彼此,每个Inode都有自己的编号。编号是以组为单位进行编的。 那么,在Linux下,如何查看文件的inode编号呢?
新的硬盘数据的密度都一致 某某数据块常常被说为某某磁道,某某扇区 从外围开始编号,0 1 2.。。...image.png 机械原理: 假如读取第5磁道第7扇区 读写数据实际上是磁头会先摆动到第5磁道上悬浮在第5磁道的上空几纳米处,等待着第7扇区转过来,之后读取数据,这是机械硬盘的寻道和寻址。...老式磁盘因为扇区存储数据一致计算容量大小为: 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 图上磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘每条磁道有...12个扇区,所以此磁盘的容量为: 存储容量 6 * 7 * 12 * 512 = 258048 新式计算更为复杂,因为扇面数据密度一样 2.磁盘的读取响应时间 寻道时间:磁头从开始移动到数据所在磁道所需要的时间...旋转延迟:盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间 数据传输时间:完成传输所请求的数据所需要的时间 读写一次磁盘信息所需的时间可分解为:寻道时间、延迟时间、传输时间。
但文件在磁盘上的所占空间却不是以Byte为衡量单位的,它最小的计量单位是“簇(Cluster)”。 什么是簇? ...文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。...扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。...为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。...②分区格式与簇大小 计算文件所占空间时,可以用如下公式: 簇数=取整(文件大小/簇大小)+1 所占空间=簇数×磁盘簇大小 公式中文件大小和簇大小应以Byte为单位,否则可能会产生误差。
但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。...系统将 LBA 地址最后会转化成为 CHS ,交给磁盘去进行数据读取。不过,我们现在不关心转化细节。 结论 我们现在已经能够在硬件层面定位,任何一个基本数据块了(扇区)。...IO单位小,意味着读取同样的数据内容,需要进行多次磁盘访问,会带来效率的降低; 文件系统读取基本单位,就不是扇区,而是数据块。...既系统读取磁盘,是以块为单位的,基本单位是 4KB 磁盘随机访问(Random Access)与连续访问(Sequential Access) 随机访问:本次IO所给出的扇区地址和上次IO给出扇区地址不连续...这个基本数据单元,在 MySQL 这里叫做page(注意和系统的page区分) 共识 MySQL 中的数据文件,是以page为单位保存在磁盘当中的。
每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据作为一个单元同时读出或写入。一个标准的3.5寸硬盘盘面通常有几百到几千条磁道。...(时间):数据在磁盘与内存之间的实际传输 因此在磁盘上读取扇区数据(一块数据)所需时间: Ti/o=tseek +tla + n *twm 其中: tseek 为寻道时间 tla为旋转时间 twm 为传输时间...页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页得大小通常为4k),主存和磁盘以页为单位交换数据。...我们都知道,我们的数据资料都是以信息的方式存储在盘面的扇区的磁道上,硬盘读取是由摇臂控制磁头从盘面的外侧向内侧进行读写的.所以外侧的数据读取速度会比内侧的数据快很多....M (向大单位换算,每次除以1024) 我们在查看分区大小的时候,可以用生产厂家提供的算法来简单推算分区的大小;把小数点向前移动六位就是以G表示的大小;比如 hda1 的大小约为 6.144831G
2、磁盘IO次数计算问题 (1)什么是一次IO 每次IO其实是磁盘控制器向磁盘发出一次读/写指令,给出开始扇区的地址和向后连续读/写的扇区的个数。...默认的页大小,为什么会有这个概念呢,因为当涉及到数据库读写的时候,规定数据库每次读写都是以16k为单位的,一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。...(3)磁盘io固定是每次读取4kb的吗 答案明显不是的,io读取是可大可小的,具体看指令的内容,并不是每次只能读取固定的1页。...比如上面解释一次io概念的时候,我们提到了指令,这个指令是类似于给出两个参数,第一个参数是要开始读取的扇区地址,第二个参数是要读取多少扇区。...所以每次io的大小是根据指令来决定的,并不是每次只能读取磁盘的一页数据,也就是4kb。
即一次访盘请求(读/写)完成过程由三个动作组成: 寻道(时间):磁头移动定位到指定磁道 旋转延迟(时间):等待指定扇区从磁头下旋转经过 数据传输(时间):数据在磁盘与内存之间的实际传输 因此在磁盘上读取扇区数据...(一块数据)所需时间: Ti/o=tseek +tla + n *twm 其中:tseek 为寻道时间、tla为旋转时间、twm 为传输时间 4、磁盘的读写原理 系统将文件存储到磁盘上时,按柱面、磁头...页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页得大小通常为4k),主存和磁盘以页为单位交换数据。...我们都知道,我们的数据资料都是以信息的方式存储在盘面的扇区的磁道上,硬盘读取是由摇臂控制磁头从盘面的外侧向内侧进行读写的.所以外侧的数据读取速度会比内侧的数据快很多 ?...;把小数点向前移动六位就是以G表示的大小;比如 hda1 的大小约为 6.144831G ; 磁盘阵列 磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能
每个存储块称为一页(在许多操作系统中,页的大小通常为 4k),主存和磁盘以页为单位交换数据,当程序要读取的数据不在主存中时,会触发一个缺页异常。...平衡多路查找树(B-Tree):为磁盘等外存储设备设计的一种平衡查找树。 系统从磁盘读取数据到内存时是以磁盘块(block)为基本单位的,位于同一磁盘块中的数据会被一次性读取出来,而不是按需读取。...InnoDB 存储引擎使用页作为数据读取单位,页是其磁盘管理的最小单位,默认 page 大小是 16k。...InnDB 在把磁盘数据读入到磁盘时会以页为基本单位,在查询数据时如果一个页中的每条数据都能助于定位数据记录的位置,这将会减少磁盘 I/O 的次数,提高查询效率。...InnoDB 中的 B+Tree InnoDB 是以 ID 为索引的数据存储。 采用 InnoDB 引擎的数据存储文件有两个,一个定义文件,一个是数据文件。
如下图: (2)扇区 和 磁道 下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分 为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。...所以,与内存操作,是虚拟一个页的概念来作为最小单位。与硬盘打交道,就是以块为最小单位。...扇区 <= 块/簇 <= page 8、计算机读取数据流程 当需要从磁盘读取数据时,系统会将数据地址传给磁盘,即确定要读的数据在哪个磁道,哪个扇区。...为 了读取这个扇区的数据,需要将磁头放到这个扇区上方,为了实现这一点,磁头需要移动对准相应磁 道,这个过程叫做 寻道 ,所耗费时间叫做 寻道时间 ,然后磁盘旋转将目标扇区旋转到磁头下,这个过程耗费的时间叫做旋转时间...页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存 和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页得大小通常为4k),主存和磁盘以页为单位交换数据。
当磁头移动到指定位置时 向磁盘写入数据:N->S 删除磁盘中的数据:S->N 磁盘中读写的本质:更改基本元素的南北极、读取南北极 注意: 磁头并非与盘面进行直接接触,而是以 15 纳米的超低距离进行磁场更改...,单个扇区大小为 512 字节(或者 4 kb),这些扇区用来存储数据,同一半径中的所有扇区组成扇面;而半径相同的扇区组成磁道(柱面) 我们可以先根据磁头(head)确定盘面,再根据半径定位磁道(柱面...逻辑地址块进行寻址 将盘面分割为多个线性分区,通过下标 N 计算出 CHS 地址,然后进行文件访问 将磁道拉长,会得到一串线性空间(数组),其中的每个单位(扇区)为 512 字节(或者 4 kb)...,经过 先描述,再组织 后,变成了对数组的管理,这个数据就是 task_struct 中的 struct block 最后我们就能理解为什么 IO 的基本单位是 4 kb 了,因为直接读取一个数据块(4...空余很多 不断往同一个文件中写入数据,导致 Data block 被占用,后续创建文件时,inode 无法再分配到 Data block 4.4、文件误删后的解决方案 磁盘中的数据被删除后,还可以再恢复吗
但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度,即查找数据的速度。...结论 我们现在已经能够在硬件层面定位,任何一个基本数据块了(扇区)。那么在系统软件上,就直接按照扇区(512字节,部分4096字节),进行IO交互吗?不是的。...IO单位小,意味着读取同样的数据内容,需要进行多次磁盘访问,会带来效率的降低; 学习文件系统,就是在磁盘的基本结构下建立的,文件系统读取基本单位,就不是扇区,而是数据块。...所以系统读取磁盘,是以块为单位的,基本单位是 4KB....建立共识 MySQL 中的数据文件,是以 page 为单位保存在磁盘当中的; MySQL 的 CURD 操作,都需要通过计算,找到对应的插入位置,或者找到对应要修改或者查询的数据; 而只要涉及计算,就需要
4、磁盘读取响应时间 寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。...操作系统与磁盘打交道的最小单位是磁盘块。每个块可以包括2、4、8、16、32、64…2的n次方个扇区。 为什么存在磁盘块?...所以,与内存操作,是虚拟一个页的概念来作为最小单位。与硬盘打交道,就是以块为最小单位。...扇区 <= 块/簇 <= page 8、计算机读取数据流程 当需要从磁盘读取数据时,系统会将数据地址传给磁盘,即确定要读的数据在哪个磁道,哪个扇区。...页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页得大小通常为4k),主存和磁盘以页为单位交换数据。
次数,而磁盘又是外设,IO的时间又很长,所以需要的时间太多了,效率低到无法想象,所以磁盘在划分的时候,以扇区为单位,最少读取单位都是512字节的数据,所以磁盘存储结构就会被划分为一个个的块状儿结构,一块存储大小为...虽然对应的磁盘访问的基本单位是512字节,但依旧很小,如果从外设将一个文件的数据搬到内存中,假设这个文件大小是4KB空间大小,那么就要经历8次IO的过程,一次IO读取一个扇区内的数据,每次访问磁盘都得等磁盘就绪...由于OS一次读取一个扇区的效率太低,所以OS内的文件系统定制的进行多个扇区的读取,也就是一次读取的数据大小不再是512字节,而是以1KB,2KB,4KB为基本单位进行数据的读取,4KB(8个扇区为基本单位...)是文件系统里最最常用的基本单位,10个文件系统里有9个是以4KB为基本单位进行IO的。...所以从磁盘中加载数据到内存时,就是分为一个个的块进行加载,将页帧的数据加载到页框里,这就是文件系统和内存管理之间的耦合,他们都是以4KB为大小进行划分的。 5.
inode、block和磁盘性能的关系 什么是inode和block? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(即:Sector)。...每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。...如果单个文件很大的情况下,block设置的很小,就需要读取多个block,这对磁盘I/O是一种消耗(因为每读取一个block都会消耗磁盘I/O,磁盘每次读取都是以block为单位的) 如果单个文件很大...当block设置的太小,则会影响大文件的读取效率,如果block设置的太小,那么存储一个大文件就需要很多很多block,在读取数据的时候就需要到很多block中去读取内容,刚刚说过,磁盘每次读取内容都是以...block为单位的,每读取一个block都会浪费一次磁盘I/O,所以,磁盘读取大文件的效率就回大大降低~ 所以,综上所述,在进行磁盘格式化区时根据业务的不同对block做一些调整,可以提高磁盘的利用率和读取性能
领取专属 10元无门槛券
手把手带您无忧上云