从磁盘原理理解文件读写优化

目录

 

案例背景

磁盘结构

盘面

磁道

柱面

启停区或着陆区(LandingZone)

扇区

读写过程

 磁盘碎片的产生(1) 

希捷硬盘读写性能测试报告

 文件碎片

文件碎片定义

产生 原因

文件碎片和连续文件读取性能对比(100M相同内容的文件)

解决方案

避免随机读 写

随机读写危害

随机读写解决方案

异步刷盘和同步刷盘

同步刷盘

异步刷盘

小文件性能影响及解决方案

小文件性能影响

小文件解决方案

并发写提高数据入盘性能

广义并发写

狭义并发写

读写分离

读写分离的必要性

读写分离的解决方案

业界优秀案例

K afka的log文件系统

topic中partition存储分布

采用优化策略

数据过期删除及log大小固定策略

小文件合并增大吞吐量


案例背景

目前影响文件读写性能的点在于文件碎片,大量小文件,文件刷盘方式,随即读写等。基于上述几类瓶颈点给于解决方案。以便解决业务线现场大量的语音文件接入。

磁盘结构

硬盘在逻辑上被划分为磁道、柱面以及扇区.下图所示:

 

数据的读/写按柱面进行,而不按盘面进行。也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个扇区开始写数据。读数据也按照这种方式进行,这样就提高了硬盘的读/写效率。

盘面

硬盘的盘片一般用铝合金材料做基片,高速硬盘也可能用玻璃做基片。硬盘的每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都会利用,都可以存储数据,成为有效盘片,也有极个别的硬盘盘面数为单数。每一个这样的有效盘面都有一个盘面号,按顺序从上至下从“0”开始依次编号。在硬盘系统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。硬盘的盘片组在2~14片不等,通常有2~3个盘片,故盘面号(磁头号)为0~3或 0~5。

磁道

    磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序编号。硬盘的每一个盘面有300~1 024个磁道,新式大容量硬盘每面的磁道数更多。信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧,这些圆弧的角速度一样。由于径向长度不一样,所以,线速度也不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈 划过的圆弧长度大。每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据作为一个单元同时读出或写入。一个标准的3.5寸硬盘盘面通常有几百到几千条磁道。磁道是“看”不见的,只是盘面上以特殊形式磁化了的一些磁化区,在磁盘格式化时就已规划完毕。

柱面

所有盘面上的同一磁道构成一个圆柱,通常称做柱面(Cylinder),每个圆柱上的磁头由上而下从“0”开始编号。数据的读/写按柱面进行,即磁 头读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读/写完毕后磁头 才转移到下一柱面(同心圆的再往里的柱面),因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换相当快,比在机械上磁头向邻近磁道移动快得多,所以,数据的读/写按柱面进行,而不按盘面进行也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个扇区开始写数据。读数据也按照这种方式进行,这样就提高了硬盘的读/写效率。一块硬盘驱动器的圆柱数(或每个盘面的磁道数)既取决于每条磁道的宽窄(同样,也与磁头的大小有关),也取决于定位机构所决定的磁道间步距的大小。

启停区或着陆区(LandingZone)

磁头靠近主轴接触的表面,即线速度最小的地方,是一个特殊的区域,它不存放任何数据

扇区

操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段。

读写过程

即一次访盘请求(读/写)完成过程由三个动作组成:
       1)寻道(时间):磁头移动定位到指定磁道 ,经验值在3~15ms
       2)旋转延迟(时间):等待指定扇区从磁头下旋转经过 60*1000/7200/2 = 4.17ms(7200rpm硬盘
       3)数据传输(时间):数据在磁盘与内存之间的实际传输(200M/S,希捷4TB硬盘

因此在磁盘上读取扇区数据(一块数据)所需时间:

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值