0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

不同应用程序的存储IO类型解析

454398 来源:架构师技术联盟 作者:EMC技术社区 2020-11-30 15:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

存储系统作为数据的载体,为前端的服务器和应用程序提供读写服务。存储阵列某种意义上来说,是对应用服务器提供数据服务的后端“服务器”。应用服务器对存储系统发送数据的“读”和“写”的请求。然而,不同的应用程序对存储的数据访问类型有所不同。

本文描述典型的不同应用程序的存储IO类型。帮助读者了解不同应用程序存储IO类型的同时,提供的数据也可以为存储模拟和压力测试的数据参考。

IO类型描述:

描述不同应用的存储IO类型之前,先要描述存储中的定义IO的几个术语:

IO大小(IO Size):IO Size是应用程序发起,经过操作系统的磁盘子系统,向存储系统发送的读写请求的单位大小。不同的应用程序所发送的IO大小都不相同,例如对于数据库应用,它在数据读写的时候IO Size是8KB,而在事务日志的写入的时候可能是512Bytes-64KB不等。所以,通常所说的IO Size都是一个平均的概念。即某一款应用在一段时间内的平均IO大小。

读写比例(Read/Write):读写比例比较容易理解,就是应用程序读数据和写数据分布。这个在规划存储的时候也至关重要,因为存储系统中的保护级别(RAID)的不同,对写有损失。例如RAID-5单次写入需要分别对数据位和校验位进行2次读和2次写。所以说,如果用RAID-5作为写入比例较高的应用,显然会对性能有很大影响。

顺序与随机读写比例(Random/Sequential):顺序和随机读写取决与应用的获取数据的方式。通常情况下,如果数据的读取和写入是在连续的磁盘空间上,可以认为是顺序读写。如果应用读取的数据分布在不同磁盘空间,且无固定的顺序,则视为随机读写。由于传统的机械磁盘(闪存盘不再讨论之列)读写数据需要盘面的转动和磁头的移动,这使得随机读写的效率在物理磁盘层面要远小于顺序读写。通常存储系统都都会利用缓存来减少这部分的延迟,减缓因为磁头的移动而带来的性能损失。随机读写的代表的是OLTP的数据库文件,顺序读写的代表则是数据的事务日志。

应用程序存储IO类型:

下面的表中描述的不同的应用程序对应的IO大小、读写比例、随机和顺序比例。表中的比例为一个通用的参考值,比例接近真实各种应用的IO类型。当然不能包含全部的应用类型因为根据不同生产环境,数值也会有很大的差异。这里的数据提供一个参考,可以用于使用压力测试工具,例如IOMeter,模拟不同应用的IO负载。

IOmeter是一款用于单系统和集群系统的I/O子系统度量(Measurement)和特征化(Characterization)工具,它是一个负载生成器(Workload Generator),也是一个度量工具(Measurement tool),可用于模拟任何程序或benchmark的磁盘或网络I/O操作,在单个或多个(联网)系统上生成并度量负载。

IOmeter由两个程序组成,Iometer和Dynamo。Iomter是控制程序/GUI,它告诉Dynamo需要做什么,收集数据结果并总结到一个输出文件。一次只应该运行一个Iometer,通常运行在服务器上。

Dynamo是一个负载生成器,它没有GUI,在Iometer的命令下执行I/O操作并记录性能信息,然后返回数据给Iometer。一次可以运行多个Dynamo,通常是一个副本运行在服务器上,另一个副本运行在每一台客户端上。Dynamo是多线程的,每一个副本可以模拟多个客户端程序的工作(Workload),每一个正在运行的Dynamo副本被称为是一个Manager,Dynamo中的每一个线程被称为worker。

不同应用通常具有不同的I/O类型,了解应用的I/O类型是为其设计解决方案、排错性能问题的首要工作。那I/O类型通常包括哪些需要考虑的因素?我们今天就来谈一谈I/O类型的几个重要方面。

读 vs. 写

应用程序的读写请求必须量化,了解他们之间的比列,因为读写对存储系统的资源消耗是不通的。了解读写比率直接关系到如何应用缓存、RAID类型等子系统的最佳实践。写通常需要比读更多的资源,SSD的写操作相对读更是慢得多。

顺序 vs. 随机

传统存储系统通常都是机械硬盘,因此整个系统设计为尽可能顺序化I/O,减少由于磁盘寻道所带来的延迟。所以,顺序I/O相对随机I/O的性能会好很多。随机小I/O消耗比顺序大I/O更多的处理资源。随机小I/O更在意系统处理I/O的数量,即IOPS;而顺序大I/O则更在意带宽,即MB/s。因此,如果系统承载了多种不同的应用,必须了解它们各自的需求,是对IOPS有要求,还是对带宽有要求。这往往需要在两种之间进行折衷考虑。闪盘是一个例外,它没有机械寻道操作,因此对随机小I/O的处理是非常迅速的,由此是读操作。

大I/O vs. 小I/O

我们通常把<=16KB的I/O认为是小I/O,而>=32KB的I/O认为是大I/O。就单个I/O来讲,大I/O从微观的角度相比小I/O会需要更多处理资源,不过对于智能存储系统来说,会尽可能把I/O整理为顺序的,以单个操作执行,如此依赖,将多个小I/O整理成单个大I/O处理后,反而会更快。I/O的大小依然取决于应用程序本身,了解I/O的大小,影响到后期对缓存、RAID类型、LUN的一些属性的调优。

位置引用

数据的位置分布影响到后期对二级缓存或存储分层技术的应用,因为这些技术都会根据I/O的位置分布来判断是否将I/O放置到缓存或快速的层级。位置引用是指那些被频繁的存储位置,我们通常认为最新创建的数据以及最近被访问过的数据,它们周围的数据也同时被访问的可能性会比较大。因此,了解应用程序的I/O位置特性,有助于应用正确的性能优化技术。

稳定 vs. 爆发

I/O数量在一天中的不同时段会有不同的表现。例如,早高峰时段的I/O数量相比下班后的I/O会多出许多。如果能准确预测和估计应用的I/O在不同时间段的稳定性和爆发性,可以正确分配资源,提高资源利用率。在前期的设计阶段,就应该考虑系统是否能够处理I/O高峰期。

多线程 vs. 单线程

多线程是实现并发操作的一种方式,同时也意味着对存储系统的资源消耗更多。这种高IOPS的请求方式,在有些情况下会造成磁盘繁忙,进而导致I/O排队,增加了响应时间。因此,适度的调整线程数量,不仅可以实现并发,而且能在不拖累整个存储系统的情况下,达到最优的响应时间。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储技术
    +关注

    关注

    7

    文章

    768

    浏览量

    47161
  • 存储系统
    +关注

    关注

    2

    文章

    440

    浏览量

    41984
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TMS320F28xxx DSP:从内部闪存运行应用程序的全面指南

    可消除对外部非易失性存储器和主机处理器的需求。要配置应用程序从闪存运行,只需遵循几个简单步骤。本文涵盖了正确
    的头像 发表于 04-23 13:40 235次阅读

    运行测试程序以读取通过受信任应用程序 (TA) 存储的安全 blob 时,内存不足怎么解决?

    当我运行测试程序以读取通过受信任应用程序 (TA) 存储的安全 blob 时,我遇到了内存不足 (OOM) 问题。 我仔细观察了代码,但没有发现任何内存漏洞。 测试程序读取对称密钥,并
    发表于 04-10 10:52

    RDMA设计56:如何设计基于RDMA的应用程序

    工作流程图 在接收到 FPGA 数据包后,应用程序进行数据包类型判断,针对 SEND 数据包和 WRITE 数据包将分别进入对应的处理流程。 当接收到 SEND 数据包后,将首先记录首包时间戳并启动定时器
    发表于 04-05 09:54

    如何构建蓝牙应用程序

    应用程序使用蓝牙(blueZ)。 我已经安装了 gcc-riscv64-linux-gnu。 但是,没有安装 blueZ 标头和库。 如何构建我的蓝牙应用程序
    发表于 04-01 07:31

    睿远研究院丨IO-Link规范解读(十五):数据类型详解

    前言 本篇对IO-Link规范的附录F的数据类型做个详细解释,附录定义了  基本数据类型 (Basic Data Types) 和  组合数据类型 (Composite Data Ty
    的头像 发表于 01-14 18:25 6101次阅读
    睿远研究院丨<b class='flag-5'>IO</b>-Link规范解读(十五):数据<b class='flag-5'>类型</b>详解

    主板到IO板连接线核心技术与方案解析

    一、主板到IO板连接线核心技术与双品电子FFCSP方案解析1.1核心定义与主要功能主板到IO板连接线(又称板对板互连线缆),是连接电子设备主板与IO接口板的柔性/刚性传输载体,核心功能
    的头像 发表于 12-24 17:53 601次阅读
    主板到<b class='flag-5'>IO</b>板连接线核心技术与方案<b class='flag-5'>解析</b>

    睿远研究院丨IO-Link规范解读(十二):SM模块与CM模块解析

    Manager,负责协调主站的各个应用程序模块,并根据端口状态启动或停止其他应用程序。 1 System Manager模块 System Manager 模块作为IO-Link最核心的模块,承上启下,把从最底层
    的头像 发表于 12-04 18:27 5978次阅读
    睿远研究院丨<b class='flag-5'>IO</b>-Link规范解读(十二):SM模块与CM模块<b class='flag-5'>解析</b>

    深入解析IPM器件数据手册中的电流定义:Ic、Icp、Io(peak)和Io(rms)

    在设计和应用IPM器件时,电流参数是影响性能的关键指标之一。然而,不同电流参数的含义可能会对应用设计产生重要影响。本文将详细解析IPM数据手册中常见的几种电流定义,包括IC、ICP、IO(peak
    的头像 发表于 12-03 17:07 7611次阅读
    深入<b class='flag-5'>解析</b>IPM器件数据手册中的电流定义:Ic、Icp、<b class='flag-5'>Io</b>(peak)和<b class='flag-5'>Io</b>(rms)

    全球前四!京东云云海AI存储跻身IO500高性能存储榜单

    近日,在最新公布的 IO500 排行榜中,京东云云海 AI 存储基于通用 NVMe 盘存储服务器,结合全栈自研软件体系与深度调优,成功跻身 IO500 生产榜单全球前四、国产自研第一。
    的头像 发表于 11-27 14:51 496次阅读
    全球前四!京东云云海AI<b class='flag-5'>存储</b>跻身<b class='flag-5'>IO</b>500高性能<b class='flag-5'>存储</b>榜单

    深入了解API:详解应用程序接口的作用和原理

    引言:在现代软件开发领域中, API(Application Programming Interface,应用程序接口)扮演着至关重要的角色。无论是在Web开发、移动应用还是大型软件系统中,API
    的头像 发表于 11-03 09:37 632次阅读

    PYQT 应用程序框架及开发工具

    大家好,本团队此次分享的内容为开发过程中使用到的PYQT 应用程序框架及开发工具。 pYqt 是一个多平台的 python 图形用户界面应用程序框架,由于其面向对象、 易扩展(可实现组件编程等
    发表于 10-29 07:15

    学生适合使用的SOLIDWORKS 云应用程序

    随着科技的不断发展,计算机辅助设计(CAD)技术已经成为现代工程教育的重要组成部分。SOLIDWORKS作为一款CAD软件,其教育版云应用程序为学生提供了强大而灵活的设计平台。本文将探讨
    的头像 发表于 09-15 10:39 1024次阅读
    学生适合使用的SOLIDWORKS 云<b class='flag-5'>应用程序</b>

    存储技术全解析

    感到困惑,不清楚它们之间的区别和关系,以及哪些是片上存储,哪些是片外存储。本文将系统地解析这些存储技术,并以树莓派和x86个人电脑为例,说明它们在实际系统中的应用。
    的头像 发表于 07-24 11:34 3459次阅读

    半导体存储芯片核心解析

    器)、SRAM (静态随机存取存储器)。 非易失性存储器:断电后数据能长期保存。 特点:速度相对慢(但也有高速类型),用作数据的“永久或半永久仓库”。 代表:NAND Flash (闪存)、NOR
    发表于 06-24 09:09

    使用 CY4500 EZ-PD 协议分析器实用程序来调试USB类型C应用程序,无法在 “详细信息” 窗口中找到 \" HPD 状态\"怎么解决?

    我正在使用 CY4500 EZ-PD 协议分析器实用程序来调试我的 USB 类型 C 应用程序。 将实用程序从 v1.0 更新到 3.1.0 后,我无法在 “详细信息” 窗口中找到 \
    发表于 05-28 07:05