应用开发基础知识 - 文件系统
1:硬盘
机械硬盘
读写数据时要移动磁头寻址,这是最耗时的地方。因此随机读写都比较慢,移动磁头耗时在毫秒级,因此一次随机读写经常是几十毫秒。
机械盘读取特点与内存读取比较:
磁盘读取时间消耗:寻道时间+旋转时间+传送时间,寻道时间+旋转时间远大于传送时间。一般可初略按寻道时间=旋转时间计算。
随机读取是主要消耗在寻道时间+旋转时间,因此磁盘一次读取一个扇区-512K与读取1个字节时间差异很小。如果可以大块数据顺序读取,则速度比随机小块数据读取速度查几个数量级。
磁盘随机读取一次的时间大概10ms
内存与磁盘的速度差异
内存是按字节读取的。电子操作没有机械运动。
读取时间跟读取数据量大小成正比,跟是否顺序存放无关
内存读取一个字节的时间大概50ns
速度比:
单个字节随机读:内存是磁盘的10万倍
512K(一个扇区):内存是磁盘的2500倍
超大块随机读:逼近 10倍
针对机械硬盘顺序读写快,随机读写慢的特性,HDFS采用LSM树的方式顺序写提高性能。
固态硬盘
随机读写比机械盘快
2:文件系统
2.1 文件系统以固定大小块为单位分配
文件系统将硬盘以块为单位进行划分。每个文件分配的都是整数个块。
文件控制块:记录文件包括哪些块
文件数据块:记录文件数据。
2.2 Linux文件系统
用INode(固定大小)节点,记录文件大小,块指针,间接索引表指针(文件大12个块存不下,用间接指针执行索引表,索引表里记录块指针。
特点:控制块放元数据与块指针+数据块放数据。数据块大小固定。后续分布式文件系统思想类似。
元数据+数据块,
2.3 单机操作系统的问题
访问速度限制,数据安全(硬盘坏),文件大小限制(控制块大小固定)linux最多70G。
2.4 文件系统RAID:
通过多个硬盘组成冗余阵列(RAID卡),通过多写及复制 可提高读写速度及应对单个硬盘毁坏的问题。
2.5 分布式文件系统
通过多个计算机分摊数据块,类似RAID,只是将硬盘换为了计算机。
可满足:文件大小无限制,防止计算机故障,读写速度快。
参考:
极客时间训练营-李智慧
评论