首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

read 文件一个字节实际会发生多大磁盘IO?

而每个组件之间都是采用不同长度块来管理磁盘数据。 Page Cache 是以单位,Linux 页大小一般是 4KB 文件系统是以块(block)单位来管理。...使用 dumpe2fs 可以查看,一般一个块默认是 4KB 通用块层是以单位来处理磁盘 IO 请求,一个段一个页或者是页一部分 IO 调度程序通过 DMA 方式传输 N 个扇区到内存,扇区一般...512 字节 硬盘也是采用“扇区管理和传输数据 可以看到,虽然我们用户角度确实是只读了 1 个字节(开篇代码中我们只给这次磁盘IO留了一个字节缓存区)。...但是在整个内核工作流中,最小工作单位磁盘扇区512字节,比1个字节要大多。 另外 block、page cache 等高层组件工作单位更大。...其中 Page Cache 大小是一个内存页 4KB。所以一般一次磁盘读取是多个扇区(512字节)一起进行

88430

数据库漫谈(二)

大家见过老式留声机?留声机上使用唱片和我们磁盘盘片非常相似,只不过留声机只有一个磁头,而硬盘是上下双磁头,盘片在两个磁头中间高速旋转,大体是长成这个样子。 ?...在磁盘上每个同心圆是磁道,圆心向外呈放射状地产生分割线(扇骨),将每个磁道等分为若干弧段,每个弧段就是一个扇区。每个扇区大小是固定 512Byte。扇区也是磁盘最小存储单位。...而HDD硬盘读取响应时间可以分为以下几个阶段: 寻道时间:磁头开始移动到数据所在磁道所需要时间,寻道时间越短,I/O操作越快,目前磁盘平均寻道时间一般在3-15ms,一般都在10ms左右。...ORACLE数据是以数据最小单位进行I/O操作数据块大小有几个选择:2K,4K,8K,16K,32K. 由数据库参数db_block_size控制,默认是8K。...关于这个我会在以后文章里详细解释,这里就不赘述了。 既然记录被初次存储到数据过程的确没有受到多少HDD硬盘读取响应时间影响。但是数据只是为了写进数据库里

39430
您找到你想要的搜索结果了吗?
是的
没有找到

硬盘基本知识(磁头、磁道、扇区、柱面)

图1 扇区 和 磁道 下图显示是一个盘面,盘面中一圈圈灰色同心圆一条条磁道,圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。...磁盘读取响应时间 寻道时间:磁头开始移动到数据所在磁道所需要时间,寻道时间越短,I/O操作越快,目前磁盘平均寻道时间一般在3-15ms,一般都在10ms左右。...提高磁盘传输效率,软件应着重考虑减少寻道时间和延迟时间。 块/簇 概述 磁盘块/簇(虚拟出来)。 块是操作系统中最小逻辑存储单位。操作系统与磁盘打交道最小单位磁盘块。...为什么存在磁盘块? 读取方便:由于扇区数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻扇区组合在一起,形成一个块,再对块进行整体操作。...page 操作系统经常与内存和硬盘这两种存储设备进行通信,类似于“块”概念,都需要一种虚拟基本单位。所以,与内存操作,是虚拟一个页概念来作为最小单位。与硬盘打交道,就是以最小单位

9.7K112

read文件一个字节实际会发生多大磁盘IO?

Page Cache是以单位,Linux页大小一般是4KB(避免有大神挑刺,这里说下Linux能设置大内存页) 文件系统是以单位来管理。...使用dumpe2fs可以查看,一般一个块默认是4KB 通用块层是以单位来处理磁盘IO请求,一个段一个页或者是页一部分 IO调度程序通过DMA方式传输N个扇区到内存,扇区一般512字节 硬盘也是采用...“扇区管理和传输数据 可以看到,虽然我们用户角度确实是只读了1个字节(开篇代码中我们只给这次磁盘IO留了一个字节缓存区)。...但是在整个内核工作流中,最小工作单位磁盘扇区512字节,比1个字节要大多。另外block、page cache等高层组件工作单位更大,所以实际一次磁盘读取是很多字节一起进行。...假设段就是一个内存页的话,一次磁盘IO就是4KB(8个512字节扇区)一起进行读取。 Linux内核中我们没有讲到是还有一套复杂读取策略。

36120

read文件一个字节实际会发生多大磁盘IO?

Page Cache是以单位,Linux页大小一般是4KB(避免有大神挑刺,这里说下Linux能设置大内存页) 文件系统是以单位来管理。...使用dumpe2fs可以查看,一般一个块默认是4KB 通用块层是以单位来处理磁盘IO请求,一个段一个页或者是页一部分 IO调度程序通过DMA方式传输N个扇区到内存,扇区一般512字节 硬盘也是采用...“扇区管理和传输数据 可以看到,虽然我们用户角度确实是只读了1个字节(开篇代码中我们只给这次磁盘IO留了一个字节缓存区)。...但是在整个内核工作流中,最小工作单位磁盘扇区512字节,比1个字节要大多。另外block、page cache等高层组件工作单位更大,所以实际一次磁盘读取是很多字节一起进行。...假设段就是一个内存页的话,一次磁盘IO就是4KB(8个512字节扇区)一起进行读取。 Linux内核中我们没有讲到是还有一套复杂读取策略。

1K21

Google Earth Engine——2004-2010年时间平均基线月度引力异常值,该数据集所包含数据是以 “等水厚度 “单位,以厘米单位表示水垂直范围质量偏差

数据集所包含数据是以 "等水厚度 "单位,以厘米单位表示水垂直范围质量偏差。更多细节请参见提供者月度质量网格概述。...每个中心都是GRACE地面系统一部分,并产生本数据集所使用二级数据(球面谐波场)。输出包括重力场和用于计算它们纠偏场球面谐波系数。由于每个中心独立产生系数,结果可能略有不同。...对大多数用户来说,建议使用所有三个数据平均值。更多细节请见供应商选择解决方案页面。 注意 由于GRACE观测采样和后处理,小空间尺度表面质量变化往往被削弱。...因此,用户应将GRCTellus陆地数据乘以NASA/GRACE/MASS_GRIDS/LAND_AUX_2014上比例网格。...由球面谐波Level-2数据处理GRCTellus陆地网格不适合准确量化格陵兰岛或南极洲、冰川和冰盖冰量变化。对于这些地区,建议使用JPLmascon解决方案,可作为以下图片集。

12910

Linux文件系统【真的很详细】

磁盘中每一个磁道被等分为若干个相同弧段,这些弧段便是磁盘扇区扇区磁盘寻址最小单位扇区大小都是512字节。虽然距离圆心越远,扇区长度越大,但是,我们可以使用存储密度加以控制。...现在有一块磁盘,相关数据如下:问:LBA地址123扇区位置? 为什么OS要对存储结构做逻辑抽象呢?直接用CHS不可以? 便于管理。 不想让代码和硬件强耦合。...虽然磁盘访问最小单位是512字节,但是依旧很小!OS内文件系统定制进行多个扇区读取(一次读取4KB数据)哪怕只想读取一个比特位,必须将4KBload到内存,进行读取或者读取。...但这背后有一个原理叫做:局部性原理:理论上证明了计算机要访问一段数据时,这段数据周围数据也有较大可能性被访问到。所以,真实内存是以4KB单位被操作系统读取。...关于Inode属性集合 由于每个文件都有Inode,为了区分彼此,每个Inode都有自己编号。编号是以单位进行编。 那么,在Linux下,如何查看文件inode编号呢?

8910

pmr垂直式硬盘与smr叠瓦式硬盘原理与区别

硬盘数据密度都一致 某某数据块常常被说某某磁道,某某扇区 外围开始编号,0 1 2.。。...image.png 机械原理: 假如读取第5磁道第7扇区 读写数据实际上是磁头会先摆动到第5磁道上悬浮在第5磁道上空几纳米处,等待着第7扇区转过来,之后读取数据,这是机械硬盘寻道和寻址。...老式磁盘因为扇区存储数据一致计算容量大小: 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 图上磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 磁盘每条磁道有...12个扇区,所以此磁盘容量: 存储容量 6 * 7 * 12 * 512 = 258048 新式计算更为复杂,因为扇面数据密度一样 2.磁盘读取响应时间 寻道时间:磁头开始移动到数据所在磁道所需要时间...旋转延迟:盘片旋转将请求数据所在扇区移至读写磁头下方所需要时间 数据传输时间:完成传输所请求数据所需要时间 读写一次磁盘信息所需时间可分解:寻道时间、延迟时间、传输时间。

1.9K40

文件大小为什么和占用空间不一样?

但文件在磁盘所占空间却不是以Byte衡量单位,它最小计量单位是“簇(Cluster)”。 什么是簇?  ...文件系统是操作系统与驱动器之间接口,当操作系统请求硬盘里读取一个文件时,会请求相应文件系统(FAT 16/32/NTFS)打开文件。...扇区磁盘最小物理存储单元,但由于操作系统无法对数目众多扇区进行寻址,所以操作系统就将相邻扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。...为了更好地管理磁盘空间和更高效地硬盘读取数据,操作系统规定一个簇中只能放置一个文件内容,因此文件所占用空间,只能是簇整数倍;而如果文件实际大小小于一簇,它也要占一簇空间。...②分区格式与簇大小  计算文件所占空间时,可以用如下公式: 簇数=取整(文件大小/簇大小)+1  所占空间=簇数×磁盘簇大小  公式中文件大小和簇大小应以Byte单位,否则可能会产生误差。

5.1K10

【MySql】MySql索引作用&&索引理解

但是天下没有免费午餐,查询速度提高是以插入、更新、删除速度代价,这些写操作,增加了大量IO。所以它价值,在于提高一个海量数据检索速度。...系统将 LBA 地址最后会转化成为 CHS ,交给磁盘去进行数据读取。不过,我们现在不关心转化细节。 结论 我们现在已经能够在硬件层面定位,任何一个基本数据块了(扇区)。...IO单位小,意味着读取同样数据内容,需要进行多次磁盘访问,会带来效率降低; 文件系统读取基本单位,就不是扇区,而是数据块。...既系统读取磁盘是以单位,基本单位是 4KB 磁盘随机访问(Random Access)与连续访问(Sequential Access) 随机访问:本次IO所给出扇区地址和上次IO给出扇区地址不连续...这个基本数据单元,在 MySQL 这里叫做page(注意和系统page区分) 共识 MySQL 中数据文件,是以page单位保存在磁盘当中

22330

硬盘读写原理详解

每段圆弧叫做一个扇区扇区“1”开始编号,每个扇区数据作为一个单元同时读出或写入。一个标准3.5寸硬盘盘面通常有几百到几千条磁道。...(时间):数据磁盘与内存之间实际传输 因此在磁盘读取扇区数据(一块数据)所需时间: Ti/o=tseek +tla + n *twm 其中: tseek 寻道时间 tla旋转时间 twm 传输时间...页是计算机管理存储器逻辑块,硬件及操作系统往往将主存和磁盘存储区分割连续大小相等块,每个存储块称为一页(在许多操作系统中,页得大小通常4k),主存和磁盘以页单位交换数据。...我们都知道,我们数据资料都是以信息方式存储在盘面的扇区磁道上,硬盘读取是由摇臂控制磁头从盘面的外侧向内侧进行读写.所以外侧数据读取速度会比内侧数据快很多....M (向大单位换算,每次除以1024)   我们在查看分区大小时候,可以用生产厂家提供算法来简单推算分区大小;把小数点向前移动六位就是以G表示大小;比如 hda1 大小约为 6.144831G

2.2K30

MySQLB+树如何存储主键和数据

2、磁盘IO次数计算问题 (1)什么是一次IO 每次IO其实是磁盘控制器向磁盘发出一次读/写指令,给出开始扇区地址和向后连续读/写扇区个数。...默认页大小,为什么会有这个概念呢,因为当涉及到数据库读写时候,规定数据库每次读写都是以16k单位,一次最少磁盘读取16KB内容到内存中,一次最少把内存中16KB内容刷新到磁盘中。...(3)磁盘io固定是每次读取4kb 答案明显不是的,io读取是可大可小,具体看指令内容,并不是每次只能读取固定1页。...比如上面解释一次io概念时候,我们提到了指令,这个指令是类似于给出两个参数,第一个参数是要开始读取扇区地址,第二个参数是要读取多少扇区。...所以每次io大小是根据指令来决定,并不是每次只能读取磁盘一页数据,也就是4kb。

1.3K10

终于知道为什么片子太多会导致硬盘变慢了

即一次访盘请求(读/写)完成过程由三个动作组成: 寻道(时间):磁头移动定位到指定磁道 旋转延迟(时间):等待指定扇区磁头下旋转经过 数据传输(时间):数据磁盘与内存之间实际传输 因此在磁盘读取扇区数据...(一块数据)所需时间: Ti/o=tseek +tla + n *twm 其中:tseek 寻道时间、tla旋转时间、twm 传输时间 4、磁盘读写原理 系统将文件存储到磁盘上时,按柱面、磁头...页是计算机管理存储器逻辑块,硬件及操作系统往往将主存和磁盘存储区分割连续大小相等块,每个存储块称为一页(在许多操作系统中,页得大小通常4k),主存和磁盘以页单位交换数据。...我们都知道,我们数据资料都是以信息方式存储在盘面的扇区磁道上,硬盘读取是由摇臂控制磁头从盘面的外侧向内侧进行读写.所以外侧数据读取速度会比内侧数据快很多 ?...;把小数点向前移动六位就是以G表示大小;比如 hda1 大小约为 6.144831G ; 磁盘阵列 磁盘阵列是由很多块独立磁盘,组合成一个容量巨大磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能

1.4K30

MySQL索引底层数据结构

每个存储块称为一页(在许多操作系统中,页大小通常 4k),主存和磁盘以页单位交换数据,当程序要读取数据不在主存中时,会触发一个缺页异常。...平衡多路查找树(B-Tree):磁盘等外存储设备设计一种平衡查找树。 系统磁盘读取数据到内存时是以磁盘块(block)基本单位,位于同一磁盘块中数据会被一次性读取出来,而不是按需读取。...InnoDB 存储引擎使用页作为数据读取单位,页是其磁盘管理最小单位,默认 page 大小是 16k。...InnDB 在把磁盘数据读入到磁盘时会以页基本单位,在查询数据时如果一个页中每条数据都能助于定位数据记录位置,这将会减少磁盘 I/O 次数,提高查询效率。...InnoDB 中 B+Tree InnoDB 是以 ID 索引数据存储。 采用 InnoDB 引擎数据存储文件有两个,一个定义文件,一个是数据文件。

62231

Mysql高级

如下图: (2)扇区 和 磁道 下图显示是一个盘面,盘面中一圈圈灰色同心圆一条条磁道,圆心向外画直线,可以将磁道划分 若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。...所以,与内存操作,是虚拟一个页概念来作为最小单位。与硬盘打交道,就是以最小单位。...扇区 <= 块/簇 <= page 8、计算机读取数据流程 当需要从磁盘读取数据时,系统会将数据地址传给磁盘,即确定要读数据在哪个磁道,哪个扇区。...读取这个扇区数据,需要将磁头放到这个扇区上方,为了实现这一点,磁头需要移动对准相应磁 道,这个过程叫做 寻道 ,所耗费时间叫做 寻道时间 ,然后磁盘旋转将目标扇区旋转到磁头下,这个过程耗费时间叫做旋转时间...页是计算机管理存储器逻辑块,硬件及操作系统往往将主存 和磁盘存储区分割连续大小相等块,每个存储块称为一页(在许多操作系统中,页得大小通常4k),主存和磁盘以页单位交换数据

41620

Linux基础IO【深入理解文件系统】

当磁头移动到指定位置时 向磁盘写入数据: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、文件误删后解决方案 磁盘数据被删除后,还可以再恢复

17610

【MySQL】索引

但是天下没有免费午餐,查询速度提高是以插入、更新、删除速度代价,这些写操作,增加了大量IO。所以它价值,在于提高一个海量数据检索速度,即查找数据速度。...结论 我们现在已经能够在硬件层面定位,任何一个基本数据块了(扇区)。那么在系统软件上,就直接按照扇区(512字节,部分4096字节),进行IO交互?不是的。...IO单位小,意味着读取同样数据内容,需要进行多次磁盘访问,会带来效率降低; 学习文件系统,就是在磁盘基本结构下建立,文件系统读取基本单位,就不是扇区,而是数据块。...所以系统读取磁盘是以单位,基本单位是 4KB....建立共识 MySQL 中数据文件,是以 page 单位保存在磁盘当中; MySQL CURD 操作,都需要通过计算,找到对应插入位置,或者找到对应要修改或者查询数据; 而只要涉及计算,就需要

11210

【MySQL高级】索引

4、磁盘读取响应时间 寻道时间:磁头开始移动到数据所在磁道所需要时间,寻道时间越短,I/O操作越快,目前磁盘平均寻道时间一般在3-15ms,一般都在10ms左右。...操作系统与磁盘打交道最小单位磁盘块。每个块可以包括2、4、8、16、32、64…2n次方个扇区。 为什么存在磁盘块?...所以,与内存操作,是虚拟一个页概念来作为最小单位。与硬盘打交道,就是以最小单位。...扇区 <= 块/簇 <= page 8、计算机读取数据流程 当需要从磁盘读取数据时,系统会将数据地址传给磁盘,即确定要读数据在哪个磁道,哪个扇区。...页是计算机管理存储器逻辑块,硬件及操作系统往往将主存和磁盘存储区分割连续大小相等块,每个存储块称为一页(在许多操作系统中,页得大小通常4k),主存和磁盘以页单位交换数据

42730

【Linux】基础IO --- 内核级和用户级缓冲区、磁盘结构、磁盘分治管理、block group块组剖析…

次数,而磁盘又是外设,IO时间又很长,所以需要时间太多了,效率低到无法想象,所以磁盘在划分时候,以扇区单位,最少读取单位都是512字节数据,所以磁盘存储结构就会被划分为一个个块状儿结构,一块存储大小...虽然对应磁盘访问基本单位是512字节,但依旧很小,如果外设将一个文件数据搬到内存中,假设这个文件大小是4KB空间大小,那么就要经历8次IO过程,一次IO读取一个扇区数据,每次访问磁盘都得等磁盘就绪...由于OS一次读取一个扇区效率太低,所以OS内文件系统定制进行多个扇区读取,也就是一次读取数据大小不再是512字节,而是以1KB,2KB,4KB基本单位进行数据读取,4KB(8个扇区基本单位...)是文件系统里最最常用基本单位,10个文件系统里有9个是以4KB基本单位进行IO。...所以磁盘中加载数据到内存时,就是分为一个个块进行加载,将页帧数据加载到页框里,这就是文件系统和内存管理之间耦合,他们都是以4KB大小进行划分。 5.

77630

inode、block和磁盘性能关系 原

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做一些调整,可以提高磁盘利用率和读取性能

3.2K30
领券