【2017年整理】磁盘IO解读

上传人:爱****1 文档编号:1002610 上传时间:2017-05-25 格式:DOCX 页数:18 大小:517.54KB
返回 下载 相关 举报
【2017年整理】磁盘IO解读_第1页
第1页 / 共18页
【2017年整理】磁盘IO解读_第2页
第2页 / 共18页
【2017年整理】磁盘IO解读_第3页
第3页 / 共18页
【2017年整理】磁盘IO解读_第4页
第4页 / 共18页
【2017年整理】磁盘IO解读_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《【2017年整理】磁盘IO解读》由会员分享,可在线阅读,更多相关《【2017年整理】磁盘IO解读(18页珍藏版)》请在金锄头文库上搜索。

1、IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的 IOPS 性能和主机端的 IO 是不同的,IOPS 是指存储每秒可接受多少次主机发出的访问,主机的一次 IO 需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是 3个存储端访问。存储阵列的瓶颈分析(接上篇) 存储网络系统由存储设备、网络设备和主机三个部分组成。存储设备是指该系统中采用的 NAS、ISCSI、FC-SAN 等磁盘阵列设备,网络设备是指 F

2、C 交换机或以太网交换机,主机是指安装了以太网卡、FC HBA 卡,并安装了一定应用软件的主机设备。存储系统的瓶颈分析主要是看这三个部分中哪一种会首先达到其性能的最大值。存储成为整个系统的瓶颈是指存储设备的带宽达到最大值,或 IOPS 达到最大值,存储设备限制了系统性能的进一步提升,甚至影响了整个系统的正常运行。由于不同业务系统对存储的性能要求不同,一般小文件(小于 1MB)读写型的系统中对 IO 的要求较高,大文件的读写型系统对存储设备带宽的要求比较高。不用应用模式下系统对存储设备的要求不同,瓶颈点出现的位置和特点也不一样。应用模式 1:小型网站系统,应用大多集中于远程用户对 WEB 页面访

3、问,网站内部为WEB 服务器和数据库之间的读写,应用系统对存储的压力非常小,差不多所有类型、所有档次的存储设备都可以作为核心存储,存储设备的带宽和 IOPS 很难会达到极限。在这样的系统中,与存储设备连接的网络设备一般都千兆以太网交换机,交换机本身的交换能力大多都是 10Gb,只有接入网部分的可用带宽较小,一般只有 100Mb/s 左右的接入带宽,因此接入网最有可能成为存储网络的瓶颈。应用模式 2:如果该网站是一个大型的网络视频系统,支持大量用户在线进行视频节目播放和下载,这种类型的网站前端接入网一般都在 2Gb/s 以上。此时要分析瓶颈位置,首先要比较接入网带宽和存储带宽,同时还要比较在线用

4、户的最大 IO访问量和存储设备的 IOPS 值。一般来讲,由于 NAS 设备的带宽和 IOPS 相对较小,因此 NAS 比 ISCSI 和 FC-SAN 设备更容易成为系统的瓶颈,而 ISCSI 和 FC-SAN 较难成为瓶颈。如果存储设备采用 NAS,则存储系统成为瓶颈的机率大于接入网,如果存储设备采用 FC-SAN,则存储系统成为瓶颈的机率小于接入网。瓶颈还经常会出现在负责节目播放和下载功能的视频服务器处。如果视频服务器配置的数量不足,或视频服务器之间无法正常地实现自动地网络负载均衡,那么整个系统的性能压力瓶颈就会出现在视频服务器,使用整个视频网站无法给远程用户提供流畅的节目画面。应用模式

5、 3:数据库系统,数据库系统的存储应用一般都表现为大量的 IO 访问,对带宽要求较低。如果存储设备的 IOPS 较小时,会降低数据库的检索和查寻速度,从来影响整个业务的效率。因此建议数据库系统采用 IOPS(可按业务规模、工作站数量、每秒的读写访问次数和估算)比较大的 FC-SAN 设备,不建议采用 IOPS相对较小的 NAS 或 ISCSI 设备。大型数据库存储最好能采用 15000RPM 的高速FC 磁盘,这样才能将数据库服务器成为整个系统的压力瓶颈。由于 SATA 硬盘在随机 IO 读写时的性能不佳,因此存储设备不建议采用 SATA 磁盘,否则存储设备极有可能数据库系统的 IOPS 瓶颈

6、。应用模式 4:非线性编辑制作系统。在非线性编辑制作网络中,所有工作站共享式地访问核心存储系统,每台工作站同时以 50-200Mb/S 的恒定码率访问存储设备。业务系统对带宽的压力非常,而 IOPS 压力较小。存储设备的总可用带宽越大,存储设备就能支持更多数量的编辑制作工作站,网络的规模就越大,网络系统所能承担的业务就越重要。因此编辑制作网的存储一般都会选择主机端口多、特别是磁盘端口多、带宽大的 FC-SAN 设备。存储设备内部设计时,一般会通过增加磁盘数量、增加扩展柜数量、跨扩展柜创建 RAID 组、增加主机通道数量等方式最大限度地利用存储控制器前端和后端的总可用带宽,使得磁盘、磁盘通道、主

7、机通道等的总带宽大于控制器的总带宽,这样在工作站访问时存储设备时,才能最大地发挥出控制器的带宽性能。带宽瓶颈在控制器部位才能说明是最好的存储系统设计方案。上篇我们分析了 raid5 与 raid10 的内部运行细节,这里我们主要分析一下存储阵列的瓶颈,因为瓶颈的出现,与 raid 方式是有很大差别的,所以我们需要先分析 raid5 与 raid10 的具体差别。阵列的瓶颈主要体现在 2 个方面,吞吐量与 IOPS。 1、吞吐量吞吐量主要取决于阵列的构架,光纤通道的大小(现在阵列一般都是光纤阵列,至于 SCSI 这样的 SSA 阵列,我们不讨论)以及硬盘的个数。阵列的构架与每个阵列不同而不同,他

8、们也都存在内部带宽(类似于 pc 的系统总线),不过一般情况下,内部带宽都设计的很充足,不是瓶颈的所在。光纤通道的影响还是比较大的,如数据仓库环境中,对数据的流量要求很大,而一块 2Gb 的光纤卡,所能支撑的最大流量应当是 2Gb/8(小 B)=250MB/s(大 B)的实际流量,当 4 块光纤卡才能达到 1GB/s 的实际流量,所以数据仓库环境可以考虑换 4Gb 的光纤卡。最后说一下硬盘的限制,这里是最重要的,当前面的瓶颈不再存在的时候,就要看硬盘的个数了,我下面列一下不同的硬盘所能支撑的流量大小:10 K rpm 15 K rpm ATA 10M/s 13M/s 8M/s那么,假定一个阵列

9、有 120 块 15K rpm 的光纤硬盘,那么硬盘上最大的可以支撑的流量为 120*13=1560MB/s,如果是 2Gb 的光纤卡,可能需要 6 块才能够,而 4Gb 的光纤卡,3-4 块就够了。 2、IOPS决定 IOPS 的主要取决与阵列的算法,cache 命中率,以及磁盘个数。阵列的算法因为不同的阵列不同而不同,如我们最近遇到在 hds usp 上面,可能因为 ldev(lun)存在队列或者资源限制,而单个 ldev 的 iops 就上不去,所以,在使用这个存储之前,有必要了解这个存储的一些算法规则与限制。cache 的命中率取决于数据的分布,cache size 的大小,数据访问的

10、规则,以及 cache 的算法,如果完整的讨论下来,这里将变得很复杂,可以有一天好讨论了。我这里只强调一个 cache 的命中率,如果一个阵列,读 cache 的命中率越高越好,一般表示它可以支持更多的 IOPS,为什么这么说呢?这个就与我们下面要讨论的硬盘 IOPS 有关系了。硬盘的限制,每个物理硬盘能处理的 IOPS 是有限制的,如10 K rpm 15 K rpm ATA 100 150 50同样,如果一个阵列有 120 块 15K rpm 的光纤硬盘,那么,它能撑的最大IOPS 为 120*150=18000,这个为硬件限制的理论值,如果超过这个值,硬盘的响应可能会变的非常缓慢而不能正

11、常提供业务。另外,我们上一篇也讨论了,在 raid5 与 raid10 上,读 iops 没有差别,但是,相同的业务写 iops,最终落在磁盘上的 iops 是有差别的,而我们评估的却正是磁盘的 IOPS,如果达到了磁盘的限制,性能肯定是上不去了。那我们假定一个 case,业务的 iops 是 10000,读 cache 命中率是 30%,读iops 为 60%,写 iops 为 40%,磁盘个数为 120,那么分别计算在 raid5 与raid10 的情况下,每个磁盘的 iops 为多少。 raid5: 1. 单块盘的 iops = (10000*(1-0.3)*0.6 + 4 * (100

12、00*0.4)/120 2. = (4200 + 16000)/120 3. = 168 这里的 10000*(1-0.3)*0.6 表示是读的 iops,比例是 0.6,除掉 cache 命中,实际只有 4200 个 iops而 4 * (10000*0.4) 表示写的 iops,因为每一个写,在 raid5 中,实际发生了 4 个 io,所以写的 iops 为 16000 个 为了考虑 raid5 在写操作的时候,那 2 个读操作也可能发生命中,所以更精确的计算为: 1. 单块盘的 iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4)*(1-0.3) +

13、2 * (10000*0.4)/120 2. = (4200 + 5600 + 8000)/120 3. = 148 计算出来单个盘的 iops 为 148 个,基本达到磁盘极限 raid10 1. 单块盘的 iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4)/120 2. = (4200 + 8000)/120 3. = 102 可以看到,因为 raid10 对于一个写操作,只发生 2 次 io,所以,同样的压力,同样的磁盘,每个盘的 iops 只有 102 个,还远远低于磁盘的极限 iops。 在一个实际的 case 中,一个恢复压力很大的 standb

14、y(这里主要是写,而且是小 io 的写),采用了 raid5 的方案,发现性能很差,通过分析,每个磁盘的iops 在高峰时期,快达到 200 了,导致响应速度巨慢无比。后来改造成raid10,就避免了这个性能问题,每个磁盘的 iops 降到 100 左右。 raid5 与 raid10 内部分析 一直以来,看到关于 raid5 与 raid10 的性能之争还是非常多的,甚至很多人那拿出了测试数据,但是,到底谁是谁非。这里,我就这两种 raid 的内部运行原理来分析一下,我们在什么情况下应当适合选哪一种 raid 方式。 为了方便对比,我这里拿同样多驱动器的磁盘来做对比,raid5 选择 3D+

15、1P 的raid 方案,raid10 选择 2D+2D 的 Raid 方案,分别如图: 那么,我们分析如下三个过程:读,连续写,随机写,但是,在介绍这三个过程之前,我需要介绍一个特别重要的概念:cache。 cache 技术最近几年,在磁盘存储技术上,发展的非常迅速,作为高端存储,cache 已经是整个存储的核心所在,就是中低端存储,也有很大的 cache 存在,包括最简单的 raid 卡,一般都包含有几十,甚至几百兆的 raid cache。 cache 的主要作用是什么呢?体现在读与写两个不同的方面,如果作为写,一般存储阵列只要求写到 cache 就算完成了写操作,所以,阵列的写是非常快速的,在写 cache 的数据积累到一定程度,阵列才把数据刷到磁盘,可以实现批量的写入,至于 cache 数据的保护,一般都依赖于镜相与电池(或者是 UPS)。cache 的读一样不可忽视,因为如果读能在 cache 中命中的话,将减少磁盘的寻道,因为磁盘从寻道开始到找到数据,一般都在 6ms 以上,而这个时间,对于那些密集型 io 的应用可能不是太理想。但是,如果 cache 能命中,一般响应时间则可以在 1ms 以内。不要迷信存储厂商的 iops(每秒的 io 数)数据,他们可能全部在 cache 命中的基础上做到的,但是实际上,你的 cac

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号