分享

集群瓶颈:磁盘IO必读

pig2 发表于 2014-2-11 14:13:53 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 37463
本帖最后由 pig2 于 2014-2-18 11:06 编辑


首先需要知道

什么是IO: IO是输入输出接口
阅读本文章可以带着下面问题
1.集群的瓶颈为什么IO?
2.你对IO了解多少?


这里面只说个人观点:
当我们面临集群作战的时候,我们所希望的是即读即得。可是面对大数据,读取数据需要经过IO,这里可以把IO理解为水的管道。管道越大越强,我们对于T级的数据读取就越快。所以IO的好坏,直接影响了集群对于数据的处理。

下面详细介绍IO

  • 读/写IO
    磁盘控制器向磁盘发出一次读/写指令,给出开始扇区的地址和向后连续读/写的扇区的个数。读/写IO是一次IO,操作的扇区编号必须是连续的,如过上层文件系统的IO请求是多个不连续的扇区,将会被磁盘控制器拆分成多个读/写IO来执行。(层次模型是理解一个系统最重要的思想,层次模型从底层到高层是一个化繁为简的过程,低层模块把复杂封装,向上层提供简易的使用接口;从高层到底层是一个逐层细分,逐层细化的过程。各层之间逻辑内聚,通过协议通讯降低耦合。文件系统层的一次IO会被磁盘存储层拆分成多次IO执行,不同层次之间的一次IO概念是不同的。)
  • 大/小块IO
    小块IO:指一次读/写IO操作的连续扇区数目较小;
    大块IO: 指一次读/写IO操作的连续扇区数目较大;
    大块和小块并没有明确区分。
  • 连续随机IO
    连续IO:指两次不同的读/写IO,前一次的结束地址与后一次的起始地址相差不大;
    随机IO: 指两次不同的读/写IO,前一次的结束地址与后一次的起始地址相差很大;
  • 顺序/并发IO
    顺序IO:指磁盘控制器必须在一次IO指令完成后才能进行下一个IO指令,指令的执行是顺序的,同步的。对于单磁盘的存储系统,所用的IO都是顺序IO;
    并发IO:并发IO是针对多磁盘的存储系统而言的, 指磁盘控制器在发出一次IO指令后,检查下一个IO指令,如果不是操作的磁盘不是正在进行的磁盘,就可以进行下一个IO指令,指令的执行是顺序的,异步的。
  • 持续/间断IO
  • 稳定/突发IO
  • 实/虚IO
    实IO:IO请求中包含对应实际数据的地址,读/写了扇区的数据;
    虚IO:非实体数据的IO请求,只是请求一些状态信息,元数据等;
  • IO并发几率
    书上的描述:单盘,IO并发几率为0,因为一块磁盘同时只可以进行一次IO。对于raid0,2块盘情况下,条带深度比较大的时候(条带太小不能并发IO,下面会讲到),并发2个IO的几率为1/2。其他情况请自行运算。
    个人理解:磁盘的IO并发是指磁盘控制器处理IO请求时是否能并发的执行,而不需要等待上一个IO请求执行结束再执行下一个IO请求。单盘的存储系统肯定是不能并发处理IO的,多盘存储系统在IO请求只占用了部分磁盘的时候能并发的处理IO请求。至于并发几率是怎么算的还没搞明白。
  • IOPS
    设t=磁盘控制器完成一次IO所需要的时间。则t=寻道时间+旋转延迟+数据传输时间;IOPS=IO并发系数/t. (IO并发系数暂时还没有找到解释,用the concurrent coefficient of IO去google也没找到…)
  • 每秒IO吞吐量
    每秒处理IO的大小,等于IOPS*平均IOSIZE。而IOSIZE的大小与磁头的读写速度有关。

来自群组: Hadoop技术组

已有(6)人评论

跳转到指定楼层
jonsen99 发表于 2014-2-18 10:26:04
说的不错,但对于为什么IO成为集群的瓶颈没说明原因。
回复

使用道具 举报

pig2 发表于 2014-2-18 11:06:45
jonsen99 发表于 2014-2-18 10:26
说的不错,但对于为什么IO成为集群的瓶颈没说明原因。

此篇文章是对 集群瓶颈为什么是磁盘io 帖子的进一步解释。详细可以查看 集群瓶颈为什么是磁盘io
回复

使用道具 举报

jonsen99 发表于 2014-3-3 13:16:25
好,有时间再拜读一下。
回复

使用道具 举报

SuperTong 发表于 2014-3-25 10:46:23
路过,看看,谢谢分享
回复

使用道具 举报

maotoo 发表于 2016-11-9 14:53:47
写的非常好  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条