linux性能系列--块设备
一、啥是块设备呢?
二、啥是flash卡呢?
三、磁盘参数对性能有哪些影响?
我们现有磁盘的转速基本都是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)类似于收款台前有人排队的时间比例。