磁盘的I/O性能评估
对磁盘IO中国达人秀海派清口的性能考虑:
1) 将频繁访问的文件系统和裸设备应尽可能放置在不同的磁盘上。 2) 在建立逻辑卷时尽可能使用mklv的命令开关给不同的文件系统和裸设备赋予不同的内策略。
3) 使用磁盘设备驱动适配器的功能属性构建合适的RAID方式,以获得更高的数据安全性和存取性能。一般考虑采用RAID5或者RAID10方式,对于写要求比较高的系统,一般建议采用RAID10方式;关于RAID10 悲兮魔兽与RAID 5的比较,可以见piner的文章,作为补充我会在后面贴出。 4) 尽可能利用内存读写带宽远比直接磁盘I/O操作性能优越的特点,使频繁访问的文件或数据置于内存中进行操作处理; IXDBA.NET社区论坛
在这里,顺带提一下裸设备以及文件系统的对比。
裸设备的优点:
1) 由于旁路了文件系统缓冲器而进行直接读写,从而具有更好的性能。对硬盘的直接读写就意味着取消了硬盘与文件系统的同步需求。这一点对于纯gb2626-2006OLTP系统非常有用,因为在这种系统中,读写的随机性非常大以至于一旦数据被读写之后,它们在今后较长的一段时间内不会得到再次使用。除了OLTP,raw设备还能够从以下几个方面改善DSS应用程序的性能:
排序:对于DSS环境中大量存在的排序需求,raw设备所提供的直接写功能也非常有用,因为对临时表空间的写动作速度更快。
序列化访问:raw设备非常适合于序列化I/O动作。同样地,DSS中常见的序列化I/O(表/索引的完全扫描)使得raw设备更加适用于这种应用程序。
2) 直接读写,不需要经过OS级的缓存。节约了内存资源,在一定程度上避免了内存的争用。
3) 避免了操作系统的cache预读功能,减少了I/O。
4) 采用裸设备避免了文件系统的开销。比如维护I-node,空闲块等。
裸设备的缺点:
1、裸设备的空间大小管理不灵活。在放置裸设备的时候,需要预先规划好裸设备上的空间使用。还应当保留一部分裸设备以应付突发情况。这也是对空间的浪费。
2、很多备份工具软件对裸设备的支持不足,导致备份等的操作和方法比较原始、麻烦。
接下来,对于磁盘I/O的性能性能评估的方法。
1、iostat查看
#iostat 1 3
System configuration: lcpu=16 drives=11 paths=4 vdisks=0
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 59.7 30.4 17.0 25.6 27.1
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk1 1.0 4.0 1.0 0 4
hdisk0 0.0 4.0
1.0 0 4
hdisk2 0.0 0.0 0.0 0 0读诗词名句随想
hdisk3 0.0 0.0 0.0 0 0
dac0 0.0 14477.7 1513.4 3072 11469
dac0-utm 0.0 0.0 0.0 0 0
dac1 0.0 0.0 0.0 0 0
dac1-utm 0.0 0.0 0.0 0 0
IXDBA.NET技术社区
hdisk4 74.7 4968.3 440.1 1728 3262
hdisk5 99.6 9508.4 1073.3 1344 8206
cd0 0.0 0.0 0.0 0 0
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 904.0 29.3 10.6 28.9 31.1
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk1 0.0 0.0 0.0
0 0
hdisk0 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
hdisk3 0.0 0.0 0.0 0 0
dac0 0.0 5956.0 492.0 1832 4124
dac0-utm 0.0 0.0 0.0 0 0
dac1 0.0 0.0 0.0 0 0
dac1-utm 0.0 0.0 0.0 0
hdisk4 49.0 2840.0 221.0 512 2328
hdisk5 100.0 3116.0 271.0 1320 1796
cd0 0.0 0.0 0.0 0 0
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 898.2 41.6 8.9 21.2 28.3
Disks: % tm_act Kbps tps Kb_read
hdisk1 0.0 0.0 0.0 0 0
hdisk0 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
hdisk3 0.0 0.0 0.0 0 0
dac0 0.0 25695.7 2306.8 2344 23432
dac0-utm 0.0 0.0 0.0 0 0
dac1 0.0 0.0 0.0 0 0
www.ixdba
dac1-utm 0.0 0.0 0.0 0 0
hdisk4 67.8 7908.3 542.3 712 7221
hdisk5 99.7 17787.4 1764.5 1632 16211
cd0 0.0 0.0 0.0 0 0
注意:第一个报告代表自系统启动以来所有的活动。
下面对输出的结果说明如下:
♦ tty TTY 的两列信息(tin 和 tou)显示了由所有 TTY 设备读写的字符数。
♦ avg-cpu CPU 统计信息列(% user、% sys、% idle 和 % iowait)提供了 CPU 的使用故障。如果 iostat 清华大学校长顾秉林命令表明 CPU
受限的情况不存在,并且 % iowait 时间大于 20%,则可能出现 I/O 或磁盘受限情况。这一情况可能在缺少实内存的情况下由过多调页产生。也有可能是由于不平衡的磁盘负载、碎片数据或应用模式而产生。奔月记
♦ % tm_act 指示物理磁盘活动所占总时间的百分比(磁盘的带宽利用率),或者换句话说,磁盘请求的总时间未达到。驱动器在数据传送和处理命令时是活动的,例如寻道至新的位置。“磁盘活动时间”百分比正比于资源争用,反比于性能。当磁盘使用率增加时,性能就下降并且响应时间就增加。一般来说,当利用率超过 70% 时,进程将等待的时间会比完成 I/O 所必需的时间更长,因为大多数 UNIX 进程在等待它们的 I/O 请求完成时会阻塞(或休眠)。查相对空闲驱动器来说繁忙的驱动器。把数据从繁忙的驱动器中移到空闲驱动器里可以帮助减轻磁盘的瓶颈。在磁盘中调入调出页面会使 I/O 负载增加。