zoukankan      html  css  js  c++  java
  • linux性能系列--块设备

    一、啥是块设备呢天真

    酷回答:I/O设备大致分为两类:块设备和字符设备。块设备将信息存储在固定大小的块中,每个块都有自己的地址。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。磁盘是最常见的块设备。在大多数的UNIX操作系统中,块设备只支持以块为单位的访问方式,如磁盘等
     

    二、啥是flash卡呢天真

    酷回答:固态硬盘(Solid State Disk、IDE FLASH DISK)是由控制单元和存储单元(FLASH 芯片)组成,简单的说就是用固态电子存储芯片阵列而制成的硬盘(目前最大容量为32GB),固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全 相同,.在产品外形和尺寸上也完全与普通硬盘一致。广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。
     

    三、磁盘参数对性能有哪些影响天真?       

      酷回答:
      Ø  磁盘转数

    我们现有磁盘的转速基本都是10k/min15k/min的磁盘较少,除非特殊情况,一般可以忽略该配置。

    Ø  磁盘容量

    常见的磁盘容量有73GB146GB300GB。较大的磁盘容量单盘片数据密度较高,磁头寻道时间较短,磁盘性能较好。

    Ø  磁盘接口

    常见磁盘接口有SCSISATASAS,其中以SAS接口的磁盘性能最好。

    Ø  预读RA

    系统预读,对于随即读为主的业务,由于读取的数据存储较为分散,建议调小该预读值;相反以顺序读为主的业务,应该调大该值。

    在随机度为主的业务中,调小该值可以明显看到iostat统计到的r/s值明显降低,vmstat统计到的bi值同时降低。

    Ø  RAID级别

    现有机器的RAID级别只有两种:RAID1+0RAID5RAID1+0I/O性能好于RAID5

    Ø  RAID读写比率

    只有HPRAID卡有读写比率的概念,DellRAID卡没有这个概念。

    Ø  Swap分区

    Swap分区对系统性能影响较小,可以忽略。大小可以通过free查看

    Ø  磁盘碎片

           对于ext2文件系统来说,磁盘块的分配会根据一定的算法尽量使得同一目录下的文件放在同一块组,即尽量保持连续性。多线程的随机读写会导致文件在磁盘上的存放连续性较低。磁盘连续性越低,导致磁盘寻道频繁,降低了系统的I/O性能。磁盘连续性可以通过plblk工具查看。

    四、监控IO的常用命令为iostat

    [work@jx-testing-ps1933.jx.baidu.com ~]$ iostat -x
    Linux 2.6.9-52bs (jx-testing-ps1933.jx.baidu.com)       07/30/2008

    avg-cpu:  %user   %nice    %sys %iowait   %idle
               0.71    0.00    0.22    0.01   99.05

    Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sda             0.01   0.26  0.40  1.01   50.25  152.31    25.12    76.15   144.46     0.02       12.24   0.65   0.09

    io相关的参数含义

    参数解释
    rrqm/s 每秒进行 merge 的读操作数目
    wrqm/s 每秒进行 merge 的写操作数目
    r/s 每秒完成的读 I/O 设备次数
    w/s 每秒完成的写 I/O 设备次数
    rsec/s 每秒读扇区数
    wsec/s 每秒写扇区数
    rkB/s 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节
    wkB/s 每秒写K字节数。是 wsect/s 的一半
    avgrq-sz 平均每次设备I/O操作的数据大小 (扇区)
    avgqu-sz 平均I/O队列长度
    await 平均每次设备I/O操作的等待时间 (毫秒)
    svctm 平均每次设备I/O操作的服务时间 (毫秒)
    %util 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的

    五、排队论和IO吐舌头

        举一个例子,我们在超市排队 checkout 时,怎么决定该去哪个交款台呢首当是看排的队人数,5个人总比20人要快吧除了数人头,我们也常常看看前面人购买的东西多少,如果前面有个采购了一星期食品的大妈,那么可以考虑换个队排了。还有就是收银员的速度了,如果碰上了连钱都点不清楚的新手,那就有的等了。另外,时机也很重要,可能 5 分钟前还人满为患的收款台,现在已是人去楼空,这时候交款可是很爽啊,当然,前提是那过去的 5分钟里所做的事情比排队要有意义。

    I/O 系统也和超市排队有很多类似之处:

           r/s+w/s 类似于交款人的总数

           平均队列长度(avgqu-sz)类似于单位时间里平均排队人的个数

           平均服务时间(svctm)类似于收银员的收款速度

           平均等待时间(await)类似于平均每人的等待时间

           平均I/O数据(avgrq-sz)类似于平均每人所买的东西多少

        I/O 操作率 (%util)类似于收款台前有人排队的时间比例。

    六、其他资料

  • 相关阅读:
    Javascript图片轮播
    Javascript返回顶部
    Android Studio 中 Svn的使用
    js简介
    使用Androd Studio开发Andriod程序查看Sha1的方法
    VueJs学习路线
    Eclipse 项目导入 Studio Debug运行卡死在进入界面
    Node软件的安装
    TextView加边框,自定义,上下左右四条线 颜色,想用哪个用哪个
    安装Eclipse(android)新建项目时遇到的问题
  • 原文地址:https://www.cnblogs.com/argb/p/3448731.html
Copyright © 2011-2022 走看看