一、啥是块设备呢

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

二、啥是flash卡呢

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

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

  回答:
  Ø  磁盘转数

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

Ø  磁盘容量

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

Ø  磁盘接口

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

Ø  预读RA

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

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

Ø  RAID级别

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

Ø  RAID读写比率

只有HP的RAID卡有读写比率的概念,Dell的RAID卡没有这个概念。

Ø  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)类似于收款台前有人排队的时间比例。

六、其他资料

linux性能系列--块设备的更多相关文章

  1. Linux显示列出块设备

    Linux显示列出块设备 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOI ...

  2. Linux Shell 判断块设备节点是否存在

    /************************************************************************* * Linux Shell 判断块设备节点是否存在 ...

  3. 深入理解Linux内核-块设备驱动程序

    扇区: 1.硬盘控制器将磁盘看成一大组扇区2.扇区就是一组相邻字节3.扇区按照惯例大小设置位512字节4.存放在块设备中的数据是通过它们在磁盘上的位置来标识,即首个扇区的下标和扇区的数目.5.扇区是硬 ...

  4. linux性能系列--内存

    一.啥是内存呢? 回答:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大. 内存(Memory)也被称为内存储器, ...

  5. linux下的块设备驱动(一)

    块设备的驱动比字符设备的难,这是因为块设备的驱动和内核的联系进一步增大,但是同时块设备的访问的几个基本结构和字符还是有相似之处的. 有一句话必须记住:对于存储设备(硬盘~~带有机械的操作)而言,调整读 ...

  6. linux内核对块设备的使用

    1 partition table 这里的分析以经典的MBR为例. 在MBR里面有partition table,每一项对应一个逻辑的块设备,partion table中的每一项是16个字节. 第一个 ...

  7. linux系统下块设备驱动程序

    顾名思义,块设备驱动程序就是支持以块的方式进行读写的设备.块设备和字符设备最大的区别在于读写数据的基本单元不同.块设备读写数据的基本单元为块,例 如磁盘通常为一个sector,而字符设备的基本单元为字 ...

  8. linux 创建虚拟块设备,制作文件系统并挂载,用于测试lustre

    1.制作块文件 3 个 [root@localhost yaoxu]# [root@localhost yaoxu]# [root@localhost yaoxu]# 2.创建回环设备 [root@l ...

  9. linux下的块设备驱动(二)

    上一章主要讲了请求队列的一系列问题.下面主要说一下请求函数.首先来说一下硬盘类块设备的请求函数. 请求函数可以在没有完成请求队列的中的所有请求的情况下就返回,也可以在一个请求都不完成的情况下就返回. ...

随机推荐

  1. 证书透明度Certificate Transparency

    发现使用google浏览器访问HTTPS网址时,点击小锁-->>连接-->>有一项服务器未提供任何 certificate transparency 信息?只有google浏览 ...

  2. 【转】winform程序textbox滚动条保持在最下面 内容不闪烁

    在开发winform程序时,会用到textbox控件来显示信息,当把textbox的Multiline属性改为Ture时(即多行显示状态),ScrollBars属性改为Vertical(内容过多时,显 ...

  3. nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)

    请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据     前台<= http协议 =>后台   常用的请求的方式: 1.GET           数据在url ...

  4. Javad的Validator框架概述

    Java EE 6 提出了 Bean Validation 规范,使用注解的方式对 Java Bean 进行约束验证,不局限于某一层次或者某一编程模型,灵活易用.下边将向您系统的介绍该规范的各种特性. ...

  5. jQuery基础---常规选择器

    内容摘要: 1.简单选择器 2.进阶选择器 3.高级选择器 发文不易,转载请注明出处! jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元素的标签名.属性名. ...

  6. Java - 关于泛型

    自Java 1.5开始使用的泛型,泛型给人比较直观的印象是..."尖括号里写了类型我就不用检查类型也不用强转了". 确实,那先从API的使用者的角度上想问题,泛型还有什么意义? D ...

  7. 数据库连接池之C3P0

    一.C3P0的使用步骤 1:导入相关的依赖jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar 2:代码实现 A:硬编码的实现方式 package ...

  8. MySQL数据导出为Excel, json,sql等格式

    MySQL数据经常要导出为Excel, json,sql等格式,通过步骤都很多,麻烦,现在通过Treesoft可以方便的导出你要的数据格式. 1.在线执行SQL,在数据列表中有相应按钮,方便的将数据导 ...

  9. spring与dwr整合实现js直接使用java代码

    此文章是基于 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 一. jar包介绍 1. dwr-3.0.1.jar,支持 spring 4.3.4 的最低版本 ...

  10. java设计模式-----9、观察者模式

    Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态. Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对 ...