条带深度 队列深度 NCQ IOPS
http://blog.csdn.net/striping/article/details/17449653
IOPS 即I/O per second,即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。
并发IO的概念:并发IO,指多个IO可以同时被处理,比如IO1可以访问a盘,IO2可以同时访问b盘。并发IO的反义词是顺序IO。
条带深度:raid5的128KB条带,128KB条带=磁盘数量乘以每个磁盘上组成这个条带的segment大小,也就是说一个条带把排列的多个磁盘横向切成了一条一条的,硬盘本身相当于竖条,而横条和竖条切开之后形成的小格子就是segment,也叫条带深度,stripe depth。比如8个盘的raid5系统,其中一块用于存放parity,128KB条带除以8等于16KB,也就是说segment=条带深度=16KB=每个磁盘上贡献一个条带所使用的空间。
队列深度:描述每个磁盘同时激活的最大的I/O值。例如,在你的配置中,每个LUN有4个磁盘,如果你的队列深度定义为16,那么整个系统同时拥有的最大的I/O数为64 (4 个磁盘 * 每个磁盘16 最大I/O值);
队列深度是一台设备上承载命令队列中的命令数量。
队列深度就是数字越大代表要处理的任务数越多,可以同时并发
HBA队列深度指的是发送到数据存储基础设施中等待处理的存储I/O数量。在安装HBA时,多数存储管理员仅仅使用HBA卡的缺省设置,而缺省HBA队列深度设置一般太高。这会造成存储端口发生拥塞,从而导致应用性能问题。如果队列深度被设置得太低,端口和SAN基础设施则得不到高效率的使用。当存储系统没有加载足够的等待处理的I/O时,则得不到使用其高速缓存的机会。但如果缓存中的几乎所有数据在被存取前就过期的话,则大多数数据存取将来自硬盘。多数HBA将缺省队列深度设置在32至256之间,但最佳范围实际上接近于2到8。多数启动程序能够报告任何时刻它们队列中未处理的请求数量,这就使你可以在过深和过浅的队列深度间取得平衡。
NCQ技术它是一种使硬盘内部优化工作负荷执行顺序,通过对内部队列中的命令进行重新排序实现智能数据管理,改善硬盘因机械部件而受到的各种性能制约。NCQ技术是SATAⅡ规范中的重要组成部分,也是SATAⅡ规范唯一与硬盘性能相关的技术。
NCQ技术 SATA规范支持许多新的功能,其中之一就是NCQ(Native Command Queuing全速命令排队)技术。 首先让我们来看一下硬盘是怎样读写信息的。硬盘通过将信息写入磁盘磁道上的特定位置进行信息存
储,硬盘访问磁盘上信息的过程如下:
● 寻找存储数据的目标磁碟(platter),访问该磁碟。
● 寻找磁碟上存储数据的目标磁道(track),访问磁道。
● 寻找磁道上存储数据的目标簇(cluster),访问簇。
● 寻找簇上存书数据的目标扇区(sector),访问扇区。
● 寻找目标数据,读取数据。
通过上面的步骤,硬盘即可获取所需要的数据信息。硬盘写入数据的步骤也是如此,区别仅仅在于读操作变为写操作。大多数情况下数据存入硬盘并非是顺序存入,而是随机存入,甚至有可能一个文件被分配在不同盘片上。对于不支持NCQ的硬盘来说,大量的数据读写需要反复重复上面的步骤,而对于不同位置的数据存取,磁头需要更多的操作,降低了存取效率。支持NCQ技术的硬盘对接收到的指令按照他们访问的地址的距离进行了重排列,这样对硬盘机械动作的执行过程实施智能化的内部管理,大大地提高整个工作流程的效率:即取出队列中的命令,然后重新排序,以便有效地获取和发送主机请求的数据,在硬盘执行某一命令的同时,队列中可以加入新的命令并排在等待执行的作业中。显然,指令排列后减少了磁头臂来回移动的时间,使数据读取更有效。
如上图所示,如果新的命令恰好是处理起来机械效率最高的,那么它就是队列中要处理的下一个命令。举个例子:比如向硬盘下达一组数据传送指令,由于数据在磁盘上分布位不同,磁头可能会先读取260扇区,再读取7660扇区,然后又读取261扇区……如果我们对指令进行优化排列,可以先读260扇区,接着依次读261扇区,最后读取7660扇区……显然,指令排列后减少了磁头臂来回移动的时间,使数据读取更有效。并且有效的排序算法除了考虑目标数据的线性位置,也会考虑其角度位置,并且还要对线性位置和角度位置进行优化,以使总线的服务时间最小,这个过程也称做“基于寻道和旋转优化的命令重新排序”。
条带深度 队列深度 NCQ IOPS的更多相关文章
- IO队列深度max_queue_depth对系统性能的影响
前段时间,发生了一个问题引起了我对IO队列深度的研究. 存储服务器中linux kernel的mpt2sas驱动模块,将max_queue_depth设置为1024时,引起系统加载驱动时卡死,而调整为 ...
- usdt节点启动慢和队列深度超出了范围问题
usdt节点启动慢和队列深度超出了范围问题 usdt的连接节点报错Work queue depth exceeded(队列深度超出了范围)大概是什么问题?重启了几次节点都不行队列深度超出了范围,估计是 ...
- MQ中间件死信队列深度不断增加问题解决案例
感谢作者: http://www.wo81.com/tec/mid/mq/2014-04-14/94.html MQ中间件死信队列深度不断增加问题解决案例 ❞ ☜ ☞ 作者:彭新 日期:2014-0 ...
- 网络损伤仪WANsim的队列深度功能
什么是队列深度 在网络损伤仪WANsim中,队列是指一个用于缓存报文的缓冲池.深度是指缓冲池可以存储的最大数据量.当WANsim接受的报文超出了带宽限制的量时,溢出的报文会进入队列中. 我们可以在WA ...
- Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3
Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3 http://blog.csdn.net/sunbow0 第二章Deep ...
- MyDAL - 引用类型对象 .DeepClone() 深度克隆[深度复制] 工具 使用
索引: 目录索引 一.API 列表 .DeepClone() 用于 Model / Entity / ... ... 等引用类型对象的深度克隆 特性说明 1.不需要对对象做任何特殊处理,直接 .Dee ...
- Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.1
Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.1 http://blog.csdn.net/sunbow0 Spark ML ...
- Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.2
Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.2 http://blog.csdn.net/sunbow0 第二章Deep ...
- 105_Power Pivot财务科目(层级深度&筛选深度)
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 1.背景 在财务科目中,需要按照科目层级来显示:在excel中都是用公式来实现,而且对于数据的管理及更新是一件头痛的事情, ...
随机推荐
- 在Eclipse中搭建C/C++环境
在Eclipse中搭建C/C++环境 本文地址:http://blog.csdn.net/you_and_me12/article/details/7389934 习惯了使用eclipse编程后,现在 ...
- python的特殊方法:
__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, ...
- C#函数的方法定义和方法调用小议
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- Ubuntu开机自动挂载Windows分区
转自Ubuntu 12.04开机自动挂载Windows分区 1.查看系统磁盘号 sd2,sd5,sd7分别对应我windows的C,D,F盘,也是本次要添加到开机挂载的,E盘为wubi安装盘. 2.查 ...
- CF_225B _Well-known Numbers
Numbers k-bonacci (k is integer, k > 1) are a generalization of Fibonacci numbers and are determi ...
- Unreachable catch block for IOException. This exception is never thrown from the try statement body
Unreachable catch block for IOException. This exception is never thrown from the try statement body ...
- oracle core 概述
oracle数据库系统的架构及其复杂,其提供的特性也非常的多.作为一种关系型数据库,oracle提供的基本特性: transaction concurrency read consistent 而支撑 ...
- PHP 获取时间的各种处理方式!
今天写下php中,如何通过各种方法 获取当前系统时间.时间戳,并备注各种格式的含义,可灵活变通.1.获取当前时间方法date()很简单,这就是获取时间的方法,格式为:date($format, $ti ...
- 使用Notify 和 wait ,使用Linklist实现生产者消费者问题
ref:http://www.cnblogs.com/happyPawpaw/archive/2013/01/18/2865957.html 注释很清楚的, import java.util.Link ...
- Java集合类操作优化经验总结
本文首先针对 Java 集合接口进行了一些介绍,并对这些接口的实现类进行详细描述,包括 LinkedList.ArrayList.Vector.Stack.Hashtable.HashMap.Weak ...