zoukankan      html  css  js  c++  java
  • 磁盘相关知识

    1、磁盘的IO单位

    (1)磁盘读写的时候都是以扇区为最小寻址单位的,一个扇区的大小是512字节,每次磁头连续读写的时候,即使一次只写了一个字节的数据,那么下一次就不能再向这个扇区剩余的部分接着写入,而是要寻找一个空扇区来写。对于磁盘来说,一次磁头的连接读或者写叫做一次IO

    2、影响磁盘性能的因素

    目前磁盘可以分为单碟盘和多碟盘,前者在盘体内只有一张盘片,后者则有多张。每张盘片的正反两面都可以存放数据,所以每张盘片需要有2个磁头,各读写一面。但是不管有多少盘面和磁头,同一时刻只允许一个磁头来读写数据,因此提高磁盘面数量只能提高容量,下面列举几个影响磁盘性能的因素:转速、寻道速度、单碟容量、接口速度

    3、内部传输速率和外部传输速率

    内部传输速率:指的是磁头读写磁盘时的最高速率,它不包含磁头寻道所花费的时间,是理想化得速率,理论上 10000转的scsi磁盘内部传输速率大概是1000MB/s,但实际上只有80MB/s左右,中间这些损耗都花费在换道上了。raid出现后,很多磁盘可以联合起来,同一时刻总有至少一块磁盘的磁头在读写状态,这就大大 提升了磁盘的性能,避免了换道所带来的损耗,所以raid能够显著提升传输速率

    外部传输速率:磁盘从盘片将数据读出,然后存放到磁盘驱动器的缓存芯片中,再将数据从缓存中取出,通过外部接口传送给主板上的磁盘控制器,从接口道磁盘控制器的传输速率,就是硬盘的外部传输速率。外部接口速率通常大于实际磁头读写数据的速率

    4、io延迟与Queue Depth

    IO延迟指控制器将IO指令发出之后,直到IO完成的过程中所消耗的时间,目前业界有不成文的规定,只要IO延迟在20ms以内,此时IO的性能对于应用程序来说都是可以接受的,但是如果大于20ms,应用的性能将会受到比较大的影响

    我们可以推算存储,存储设备应当满足的最低IOPS要求应该为1000/20=50,即要求存储设备最低能够提供每秒50次IO。

    思考一个问题:如果延迟是1ms,那么IOPS=1000/1,就是每秒1000次IO,这个数值和刚才提到的十几万IOPS有出入,为什么?因为IO指令是批量发送的,只要存储设备肚量和消化能力足够,每个肚量是=由Queue Depth(QD)决定的,一般主机控制器端可以将该值设置为64,128等。随着QD的增加,IO延迟也会随机增加,公式如下:IOPS=QD/IO延迟

    5、传输带宽

    传输带宽指的是磁盘在传输数据时数据流的速度:

    写入10000个1KB的文件需要10s,传输带宽只能达到每秒1MB

    写入一个10MB的文件用了0.1s,传输带宽就是100MB/s

    6、MBR与分区表

    硬盘的主引导扇区(mbr)位于硬盘的物理扇区0柱面,0磁头,1扇区(512字节(主引导记录446字节,分区表64字节,55AA(2字节保留))),而硬盘分区表在主引导扇区之中占64字节。那意思就是硬盘分区表也是在0柱面,0磁头,1扇区中

  • 相关阅读:
    mac 10.15.7 修改PATH
    oc 属性类型一般用法
    ubuntu解压zip文件名乱码
    telnet 退出
    docker 根据容器创建镜像
    mac android adb device 没有显示设备
    Yii2 查看所有的别名 alias
    Yii2 App Advanced 添加 .gitignore
    ubuntu 18.04 搜狗突然就提示乱码
    An error occured while deploying the file. This probably means that the app contains ARM native code and your Genymotion device cannot run ARM instructions. You should either build your native code to
  • 原文地址:https://www.cnblogs.com/zhengchunyuan/p/7326644.html
Copyright © 2011-2022 走看看