zoukankan      html  css  js  c++  java
  • 《IO 系统性能》笔记

    近期项目中涉及和别人谈存储架构及选型,将IOPS相关的内容学习下。参考网上资料《IO 系统性能之一:衡量性能的几个指标》

    1. 基本概念
      1)读写IO操作:对应磁盘的存数据、取数据;
      2)单个IO操作:操作系统 <- IO指令-> 控制器 <-指令+数据块-> 硬盘
      3)随机访问:两次IO操作的扇区地址差距比较大;
      4)连续访问:多次IO操作的扇区地址比较接近;
      5)顺序IO/并发IO:磁盘组能够接受并执行来自控制器的多个IO操作;

    2. 单个IO的大小(IO Chunk Size)
      1)数据库读写(包括Orale之block、Sql server之page)默认基本块为8KB;
      2)操作系统提供文件系统缓存,即将多个IO操作缓存后一次性提交给磁盘;
      3)存储系统可能也提供缓存,即将多个来自操作系统的IO指令合并执行;

    3. IOPS(IO per Second)
      1)IO 系统每秒执行IO操作的次数;
      2)IO Time:
      假设:磁盘转速 15K RPM、平均寻道时间 5ms、最大传输速率 40MB/s
      基本概念:
        寻址时间:控制器对磁盘发出指令后,磁盘控制臂将磁头移植待读写数据的磁道正上方; -> 5ms
        旋转延时:等待盘片将待读扇区移到磁头正上方;-> (60S/15K)/2 = 2ms 最好情况 + 最坏情况/2
        传送时间:磁盘转动,磁头读入本次IO的全部数据;IO chunk Size/Max transfer rate 如4K/40M
        IO Time = 寻址时间 + 旋转延时 + 传送时间 -> IOPS = 1/IO Time

    4. 传输速度(Transfer Rate)/吞吐率(Througput)
      实际过程中会使用IOPS衡量小IO操作系统,而对大IO操作系统用传输速度;
      由上述公式可知,当系统经常属于连续操作时IOPS也无参考价值;

    5. IO响应时间
      IO 响应时间:从操作系统发出一个IO指令 到 操作系统收到一个IO反馈为止;此时等于要在IO Chunk Size的基础上增加在内核队列中的时间;

    6. 磁盘阵列的两大瓶颈 IOPS 和 吞吐量
      6.1 吞吐量
        取决与磁阵的架构,如下:
        光纤通道:2G的FC卡 -> 2G/8 = 250M/s的实际流量
        硬盘:120块15KRPM的硬盘,支撑的数据流量 = 120*13M/s = 1560Mb/s

    6.2 IOPS
        取决于IOPS的主要包括磁阵的算法、cache命中率、磁盘个数
        例:业务IOPS 10000、读cache命中率30%、读IOPS 60%、写IOPS 40%、磁盘个数为120个
        RAID 5:
        单块盘:IOPS = (10000*0.7*0.6 + 4*10000*0.4)/120 = 168; //raid5中写操作需要4个IO
        备注:15k rpm的硬盘支持IOPS为150

  • 相关阅读:
    Android使用静默安装时碰见的问题
    Android 在Android代码中执行命令行
    android SystemServer.java启动的服务。
    Android AndroidRuntime类
    学习C的笔记
    Java虚拟机 JVM
    Android 关于ijkplayer
    Android 算法 关于递归和二分法的小算法
    Android 死锁和重入锁
    JAVA的内存模型(变量的同步)
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/3804035.html
Copyright © 2011-2022 走看看