IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。
IO系统的分层:
-
三层结构
上图层次比较多,但总的就是三部分。磁盘(存储)、VM(卷管理)和文件系统。专有名词不好理解,打个比方说:磁盘就相当于一块待用的空地;LVM相当于空地上的围墙(把空地划分成多个部分);文件系统则相当于每块空地上建的楼房(决定了有多少房间、房屋编号如何,能容纳多少人住);而房子里面住的人,则相当于系统里面存的数据。
对应了上图的File
System和Buffer Cache。
File
System(文件系统):解决了空间管理的问题,即:数据如何存放、读取。
Buffer
Cache:解决数据缓冲的问题。对读,进行cache,即:缓存经常要用到的数据;对写,进行buffer,缓冲一定数据以后,一次性进行写入。
对应上图的Vol Mgmt。
VM其实跟IO没有必然联系。他是处于文件系统和磁盘(存储)中间的一层。VM屏蔽了底层磁盘对上层文件系统的影响。当没有VM的时候,文件系统直接使用存储上的地址空间,因此文件系统直接受限于物理硬盘,这时如果发生磁盘空间不足的情况,对应用而言将是一场噩梦,不得不新增硬盘,然后重新进行数据复制。而VM则可以实现动态扩展,而对文件系统没有影响。另外,VM也可以把多个磁盘合并成一个磁盘,对文件系统呈现统一的地址空间,这个特性的杀伤力不言而喻。
对应上图的Device Driver、IO Channel和Disk Device
数据最终会放在这里,因此,效率、数据安全、容灾是这里需要考虑的问题。而提高存储的性能,则可以直接提高物理IO的性能
2. Logical IO vs Physical IO
逻辑IO是操作系统发起的IO,这个数据可能会放在磁盘上,也可能会放在内存(文件系统的Cache)里。
物理IO是设备驱动发起的IO,这个数据最终会落在磁盘上。
逻辑IO和物理IO不是一一对应的。
分享到:
相关推荐
内容概要:IO的分层;IO模型;IO性能的重要指标;文件系统;逻辑卷管理;Driver & IO Channel;RAID;三分天下 适用人群:Java开发人员 使用场景:想学习JavaIO以及在IO开发中遇到瓶颈 目标:通过本教程的讨论与解析...
在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络...阐述之前,要先有个大视角,让我们站在万米高空,鸟瞰我们的文件IO,它们设计是分层的,分层有2个好处,一是架构清晰,二是解耦。
主要来自于以下课程内容以及其他牛人文章总结+一nene自己的思考 周老师:内存与IO,磁盘IO,网络IO 资料地址 166 虚拟文件系统,文件描述符,IO重定向 地址 174 内核中PageCache、mmap作用、java文件系统io、nio、...
购物车的模拟,从用户到商品到付款!IO流的读取!servlet分层模式!包含监听和过滤器的使用!
消除剥夺人们对Craft.io的自豪感的障碍,取消年度评级或绩效制度;(13) 为每个人制定一个强有力的教育和自我提升计划;以及 (14) 把每个人都放在公司里工作到完成转型。 Syn:戴明的 14 分。” 3D打印 使用计算机...
一款小巧的软件,简单的分层,基础的练习.对初学者比较实在.利用了IO数据流写XML文件,同时文件绑定了treeview控件.比较实用
该文件是基于JavaSE知识实现的简单考试系统,未使用数据库知识,底层用文件存储用户信息,初步采用MVC 分层架构思想,还包含多种设计模式。
MC9S12G128分层化模块化之IO的PDF文档,包含详细的讲解,比网页文档格式更加规范。从软件架构,硬件资源和软件实现解析。
同时项目结构分层清晰易懂,程序基于轻量化的设计理念没有额外无关的依赖项,运行方便简单。 适用于计算机相关专业学生或者没有实战项目经验的初级开发者: - 用于学期课程设计参考学习 - 用于毕业设计参考学习 - ...
MC9S12G128软件分层化模块化架构之IO的源码,使用codewarrior打开,可正确编译。代码会继续优化。
目标是使经常使用接口包装器的团队在行为上分层(例如使用装饰器模式),或者使经常需要生成某些接口的标准实现的团队(例如那些为测试生成存根的团队)成为可能。 该项目的主要灵感来自 ,其中包含一个名为mockgen...
matlab中存档算法代码两全其美:结合CNN和几何约束进行分层运动分割 这是本文的执行。 该代码生成运动分割蒙版,对多个独立移动的对象进行分割。 另外,提供了一种估计摄像机旋转和平移方向的方法。 该代码已记录并...
recapProjectRentCar:与Engin Demirog一起从kodlama.io营地租用汽车分层建筑回顾项目
使用它可以通过在线图形库显示复杂图,Draw.io可以创建多种类型的图: 技术架构架构(旧版,云,Azure,AWS,GCP,Kubernetes,Terraform) 图表(网络,电气,流量等) 工业流程有机计划平面图UML计划工作流程...
:H.264/AVC标准是当前国际上最新的图像编码标准。...际标准14496一IO(MPEG一4的第10部分)高级图像编码(AVC)。本文对标准中关键技术(分层技术)从定义、分类、流 格式方面及其实现作了比较系统的介绍。
H3:六角形分层地理空间索引系统H3是使用六角形网格的地理空间索引系统,可以将六角形网格(大约)细分为越来越细的六角形网格,结合了十六进制H3的优点:六角形分层地理空间索引系统H3是地理空间使用六边形网格的...
分层事件描述符(HED) 该存储库包含hedtags.org网站。 对于HED架构,请访问: : 有关HED的更多常规信息,请访问: :
它可以完成所有工作:预处理,VASO的BOLD校正,运动校正,分层等。大多数情况下都是C ++,并带有一些Matlab 90%的内容是用C ++编写的,很少使用matlab / SPM 大多数C ++评估使用ODIN的nii O / I。 由于安装有点...
在Spark中支持分层数据格式,HDF5 / NetCDF4和Rich Parallel I / O接口通过Lustre文件系统优化在HPC上优化I / O性能输入和输出输入的是HDF5文件输出是一个RDD对象下载H5Spark git clone 只需在Cori / Edison上测试H5...
通过对关键Craft.io参数(即烘烤温度和时间)对PDMS复制的影响进行系统研究的结果,通过实验获得了在微/纳米集成制造过程中聚合物材料的分层多尺度结构相互作用的见解。第一次。 有限元模拟已被用来说明这种新现象...