磁盘相关


linux file system block size: 4K(通过 /usr/bin/time -v可以看到)
linux page size: 


簇:一般为多个扇区组成。也称block。
扇区:512B(0.5K)


SATA3接口:
理论速度为6Gbps(750MB/S)。一般实际使用,写速度能到550MB/S,读到580MB/S就非常好了。


HD Tune测试SATA3.0接口的西数1TB蓝盘(转速为7200RPM,缓存为32MB):
连续读:平均读取速度达到104MB/S,而最高读取速度超过130MB/S,表现非常不错。寻道方面,西数1TB蓝盘成绩为13毫秒,中规中矩。
随机读:读取4KB文件的IOPS值为76,平均速度0.3MB/S,随机读取文件的平均速度在25MB/S,表现一般。
连续写:达到101MB/S,成绩非常不错。

随机写:随机存取方面,应对4KB文件的IOPS值达到146,性能不错。


连续IO和随机IO

顺序IO和并发IO

磁盘随机IO性能:即使是15000RPM的温彻斯特SAS盘,单盘也很难超过300IOPS。



外部因素:
IO队列深度:Queue Deep一般小于256。
cache


关于硬盘的一些参数解释如下:
 硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。
*△磁头(Heads)*:每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁头
就可以表示数据在哪个磁面。
*△柱面(Cylinder)*:所有磁片中半径相同的同心磁道构成“柱面",意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面就是磁道。
*△扇区(Sector)*:将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节。


硬盘容量=磁头数×柱面数×扇区数×512字节

=

存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数 


整个磁盘的扇区使用一套编号,从最内磁道的扇区开始,从0开始编号。称为逻辑扇区号。


平均寻址时间:采用当前最多的10krmp硬盘的5ms。

磁头在空闲时置在最内圈(无数据区)。所以,里面的磁道(柱面)寻道时间短。

平均旋转延时:对于10krpm的磁盘就是(60s/10k)*(1/2) = 3ms

磁头移动到要求的磁道(柱面)后,不一定落到目标扇区,所以还需要旋转到目标扇区。



驱动程序通过读写端口寄存器来和硬件通信。

在x86平台上公有65536个硬件端口寄存器。



SSD:

与传统磁盘相比,SSD固态盘提供了好得多的随机读性能,单盘可达35000 IOPS (4KB或8KB等)甚至更高,并提供512MB/s或以上的读出带宽。


多page(4KB,8KB)组成block(512KB-2MB),多个block组成band(nGB,如8GB);


写入放大效应:

ssd硬盘即使写入一个字节也要读出磁盘上整个block(512kB-2MB),重新写入(读出的内容和要写入的内容融合,擦除原block内容,写入融合后的内容)。




你可能感兴趣的:(hardware)