一、啥是块设备呢
?
回答: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
I/O 系统也和超市排队有很多类似之处:
r/s+w/s 类似于交款人的总数
平均队列长度(avgqu-sz)类似于单位时间里平均排队人的个数
平均服务时间(svctm)类似于收银员的收款速度
平均等待时间(await)类似于平均每人的等待时间
平均I/O数据(avgrq-sz)类似于平均每人所买的东西多少
I/O 操作率 (%util)类似于收款台前有人排队的时间比例。