【虚拟化实战】存储设计之七Block Size

作者:范军 (Frank Fan)新浪微博:@frankfan7   微信:GetToCloud

实战存储设计之六Latnecy我们介绍Latency过高的原因和一些建议。本文重点分析Block Size对性能特别是latency的影响。

什么是Block Size

Block Size这个词在不同的语境中有不同含义。在此文中指的是在OS中运行的应用发出一个IO读或写请求所传送的数据单元的大小。无论你采用传统存储架构,还是融合,超融合等架构,IOBlock Size对性能都有影响。

如同下图所示,一个IO请求比如搬一块砖,砖块的大小对整个存储架构中的很多组件的负荷都有影响。比如HBA,存储交换机,存储系统的CPU等等,当然存储介质本身对不同砖块的处理能力也不同。

上图摘自博客vmpete.com

为什么Block Size对存储性能有很大影响?

对Throughput的影响:

Throught =  IOPsx  Block size

同样是10IOPs,256K blocks 需要传输的数据是4K Blocks 的64倍!那么自然会对存储网路的带宽以及存储控制器的CPU消耗都有影响。

对时延Latency的影响

上图摘自vmpete.com。 这是在采用存储性能分析软件PernixData  Architect之后,显示了不同Block Size对Lantency的影响。可见当Block Size大于64K时对Lantency的影响最大。


如何来应对大数据块IO带来的挑战呢?

以前没有工具或简单的方法可以很好了解应用产生的Block Size。而且在常规存储设计中,并没有太多顾及到应用产生的Block Size, 往往是根据一些假设条件来做出设计决定。即使在存储阵列中采用闪存,其实并不能减少。大数据块IO对HBA,存储网络以及存储控制器产生的负荷。并且我们发现常规SSD硬盘处理大数据块IO的性能并不理想。

利用IO BlockSize真实案例:

案例一:

某客户发现应用性能下降,经排错发现大数据块IO对Latency的影响极大。在不对后台存储有任何改变的情况下,采用PernixData FVP软件和服务器端NVMe PCI闪存对存储性能加速。极大的降低了大数据块IO对Latency的影响。注意该用户才用NVMe PCI闪存而不是常规SSD Drive。因为常规SSD硬盘处理大数据块IO的应能并不好。

案例二:

某客户发现很多应用的性能下降。经排错发现某SQL虚拟机产生非常多的大数据块IO,对该SQL优化后问题解决。

案例三:

某云服务提供商在所有虚拟机中设置 Disk IO Limit,以防止共享环境中某些虚拟过度占用存储资源。vSphere 5.5以后对mclock diskscheduler 作了更改,对于block size 大于32K的IO,从Disk IO limit这个角度上讲,不在认为该IO只是一个IO.   比如 256K blockSize IO 会被认为是8个IO。

了解应用Block Size的大致情况,会对更好的设置Disk IOLimit有很大帮助。

Reference:

Viewing the impact of block sizes with PernixData Architect

Limit a VM from an IOps perspective

时间: 2024-10-09 21:05:12

【虚拟化实战】存储设计之七Block Size的相关文章

【虚拟化实战】存储设计之六latency

在[虚拟化实战]存储设计之五IOPS中我们讲了评估存储性能的三个关键指标.也就是Throughput,IOPs和latency.以及三者之间的关系.本文深入介绍Latency过高的原因和一些建议. Latency过高直接导致在该存储上运行虚拟机以及其应用的性能降低.最终用户可能抱怨程序打不开,运行慢,响应时间长等等. 一   如何衡量Latency? Latency或者respondingtime,指完成一个IO请求所需要的时间.往往以milliseconds来衡量. 应用端发出的一个IO请求,

Windows Server 2012 虚拟化实战:存储(一)

在计算机世界我们随处可以见的一种方法,那就是抽象.1946年冯诺依曼提出了计算机的基本结构包含:计算器,存储器和I/O设备.这可能是对计算机这一新生事物最重要的一次抽象,它直接影响了今后几十年计算机软硬件的发展.我们每个人对计算机的计算器,存储器和I/O设备都有不同的认知,你可能不认识所有计算芯片,不了解各种存储设备和输入输出设备,但是这绝对不会阻碍你区分出它们来.计算机系统中的各个部分可能是不可或缺的,但一定是可以替换的,这就是抽象的力量.没有抽象,我们可能要为每一套硬件开发不同的操作系统,要

列式存储设计实战

背景: 开发个学生系统,数据库设计. 设计实施: 传统数据库学生表行设计 学号 姓名 性别 年龄 1 张三 男 16 2 李红 女 15 3 王五 男 16 当想扩展属性时,相对应的会增加字段. 学号 姓名 性别 年龄 住址 1 张三 男 16 河南 2 李红 女 15 湖北 3 王五 男 16 北京 实际开发中这样做的缺点: 1:属性字段向主表加,会导致列越来越多,增加表拆分成本. 2:  增加字段,程序中实体模型,SQL查询字段,DTO及文档数据模型都要跟着发生变化,增加成本. 3:查询单个

Windows Server 2012 虚拟化实战:存储(二)

五.搭建Window Server 2012虚拟化的存储网络 前文我们讨论了Window Server 2012支持的各种与存储相关的技术,接下来我们通过实践对其中的一些技术进行检验.实际上Window Server 2012虚拟化并不一定需要诸如NAS或者SAN之类的第三方存储,利用服务器的内的本地磁盘也同样可以部署Window Server 2012虚拟化的基础架构SCVMM(System Center Virtual Machine Manger).但是虚拟化本质上追求的是可伸缩性和高可用

SoC嵌入式软件架构设计之七:嵌入式文件系统设计

嵌入式的系统区(system disk,SD)包括操作系统.驱动.中间件.应用和字库.UI资源等文件,本文讲述SD区的文件系统设计.文件系统最主要的目标是为了实现单个文件的定位和读写.因为一般代码都是不可自修改的,即量产之后不会有写操作,嵌入式系统的SD文件系统就是为了能够简单.高效地定位某个文件和读取文件中的数据.设计原则和要点有以下几方面: 1. 逻辑连续存储单个文件,以扇区对齐. SD区的单个代码和资源文件一般都不大,所以不必要像fat32文件系统那样用fat表把文件簇串起来,直接逻辑连续

openstack安装(liberty)--安装块存储服务(Block Storage service/cinder)

八.安装块存储服务(Block Storage service/cinder) ###注意注意注意时间同步很重要 8.1安装环境准备中配置主机相应配置,包括主机名称,hosts,时间同步,防火墙,SELINUX以及相关OPENSTACK包 8.2控制节点配置 8.2.1创建数据库并授权 [[email protected] ~]# mysql -uroot -p Enter password: MariaDB [(none)]> create database cinder; Query OK,

Windows Server 2012 虚拟化实战:网络(二)

关于Windows Server的虚拟化网络,前文描述了在操作系统层面上的出现的配置变化.其中的一些配置通过Windows Server提供的小工具即可实现,如网卡组的配置,而有些需要安装Windows Server的服务器角色,如Hyper-V,然后通过Hyper-V Manager或者其命令行工具来配置虚拟交换机.但是要进行全局配置管理和实现一些高级功能,就需要接下来介绍的主角System Center Virtual Machine Manager(SCVMM).关于SCVMM的安装和部署

4K Block Size的Device和 Aligned IO

http://www.cnblogs.com/cenalulu/p/3587006.html 背景:最近采购了一批新的服务器,底层的存储设备的默认physical sector size从原有的 512B 改为了 4K. 装完系统以后,在做数据库物理备份恢复时xtrabackup报了这么一个错.但是同样的备份在512B sector size的老系统上却可以恢复. 报错如下: InnoDB: Error: tried to read 2048 bytes at offset 0 0.InnoDB

中间件事务码R3AC1里Block Size的含义

在中间件事务码R3AC1可以为一个中间件的适配器对象维护Block size的大小. 以上图的尺寸为50为例,假设在ERP系统里有110个设备(equipment)需要下载,那么CRM中间件会自动生成3个inbound队列执行下载任务,其中2个队列各下载50个设备,另外1个队列下载剩下的10个设备. 这些下载队列的事务处理是彼此隔离的,也就是说即使某个队列的下载出了错,这个队列里待下载的ERP设备未能成功存储到CRM系统里,但是并不会影响到其他队列的处理. 我的SAP community博客St