首先需要知道
什么是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的大小与磁头的读写速度有关。

集群瓶颈:磁盘IO必读的更多相关文章

  1. 集群瓶颈为什么是磁盘io

    阅读本文思考: 1.对磁盘IO了解多少 2.为什么是磁盘IO是瓶颈,有没有自己的答案 想了解磁盘io可以查看此帖:集群瓶颈:磁盘IO必读 (磁盘IO:磁盘输出输出) 集群的瓶颈提出多种看法,其中网络和 ...

  2. VMware Workstation 集群仲裁磁盘和数据共享磁盘的创建

    近期项目须要对SQL Server建立集群服务,多个SQL Server数据库建立集群服务,对外提供唯一的URL訪问地址.当主节点断电.断网后,通过心跳线将消息传递到备用节点.备用节点在3秒内接管数据 ...

  3. Hadoop集群datanode磁盘不均衡的解决方案

    一.引言: Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点,节点与节点之间磁盘大小不一样等等.当hdfs出现不平衡状况的时候,将引发很多问题,比 ...

  4. Hadoop集群datanode磁盘不均衡的解决方案【转】

    一.引言: Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点,节点与节点之间磁盘大小不一样等等.当hdfs出现不平衡状况的时候,将引发很多问题,比 ...

  5. oracle 11g rac集群 asm磁盘组增加硬盘

    创建asm磁盘的几种方式 创建asm磁盘方式很多主要有以下几种 1.Faking方式 2.裸设备方式 3.udev方式(它下面有两种方式) 3.1 uuid方式 3.2 raw方式(裸设备方式) 4. ...

  6. 【转】Hadoop集群添加磁盘步骤

    转自:http://blog.csdn.net/huyuxiang999/article/details/17691405 一.实验环境 : 1.硬件:3台DELL服务器,CPU:2.27GHz*16 ...

  7. 用asmlib方式创建oracle集群ASM磁盘(oracleasm)

    创建asm磁盘的几种方式 创建asm方式很多主要有以下几种 1.Faking方式 2.裸设备方式 3.udev方式(它下面有两种方式) 3.1 uuid方式 3.2 raw方式(裸设备方式) 4.as ...

  8. 【mysql】高可用集群之MMM

    一.复制的常用拓扑结构 复制的体系结构有以下一些基本原则: (1)    每个slave只能有一个master: (2)    每个slave只能有一个唯一的服务器ID: (3)    每个maste ...

  9. mysql复制以及一主多从等常见集群概述

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并 ...

随机推荐

  1. COM中导出GUID

      编写COM组件的时候需要导出GUID,以下是代码示例. extern "C" const GUID CLSID_Dictionary =         { 0x54bf656 ...

  2. redis学习笔记——主从同步(复制)

    在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复 ...

  3. C++生成十字绣图案(二) 面向对象

    基本的十字绣线性生成中提供了判断下一步可以画的位置并且逐步生成的函数.以这些基本函数为基础,可以进行更多变化的图案设计. 为了方便的扩展,可以把线性生成写成一个类,以后的修改继承这个类. 头文件Bas ...

  4. windows下的虚拟内存分配分析

    让我们从原始的进程创建开始分析吧.当进程创建后,操作系统给该进程分配4GB的虚拟地址空间,这部分虚拟内存是你的应用程序看的到的区域(注意很大一部分是不能访问的,比如:内核区域,这部分加载了操作系统中的 ...

  5. java中的数据加密

    记录 一.java中的数据加密 Java提供的安全模型和API 加密基础知识 使用JAVA实现加密 二.Java提供的安全模型和API 2.1.Java语言本身的安全性 自动内存管理:对于生成的对象在 ...

  6. 〖Linux〗OK6410a蜂鸣器的驱动程序编写全程实录

    最近在看一本书,受益匪浅,作者是李宁,下边是编写本次蜂鸣器的全程实录: 1. 了解开发板中的蜂鸣器 1) 查看蜂鸣器buzzer在底板中的管脚信息 2) 查看蜂鸣器在总线中的信息 3) 翻看S3C64 ...

  7. 〖Linux〗build sqlite3 for Arm

    Version: sqlite-autoconf-3080100.tar.gz Download: https://www.sqlite.org/download.html 1. toolchains ...

  8. JAVA中定义常量的几种方式

    1.最古老的 //未处理 public static final Integer PROCESS_STATUS_UNTREATED = 0; //已接收 public static final Int ...

  9. 怎么将手动设定的IP变成固定的自动IP.

    怎么将手动设定的IP变成固定的自动IP. 基本原理是 是用的MAC 地址来绑定你的IP地址 方法1左下角 开始→运行→输入  cmd  回车→输入 ipconfig /all 用来查看你的MXC地址 ...

  10. eclipse中英文版转换(前提:有中文包)

    均为命令行启动(一次就可以) 中文版启动:eclipse.exe -nl zh 英文版启动:eclipse.exe -nl en