说说IO(一)- IO的分层
2016-07-08 00:00
232 查看
IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。
IO系统的分层:
三层结构
上图层次比较多,但总的就是三部分。磁盘(存储)、VM(卷管理)和文件系统。专有名词不好理解,打个比方说:磁盘就相当于一块待用的空地;LVM相当于空地上的围墙(把空地划分成多个部分);文件系统则相当于每块空地上建的楼房(决定了有多少房间、房屋编号如何,能容纳多少人住);而房子里面住的人,则相当于系统里面存的数据。
文件系统—数据如何存放?
对应了上图的File System和Buffer Cache。
File System(文件系统):解决了空间管理的问题,即:数据如何存放、读取。
Buffer Cache:解决数据缓冲的问题。对读,进行cache,即:缓存经常要用到的数据;对写,进行buffer,缓冲一定数据以后,一次性进行写入。
VM—磁盘空间不足了怎么办?
对应上图的Vol Mgmt。
VM其实跟IO没有必然联系。他是处于文件系统和磁盘(存储)中间的一层。VM屏蔽了底层磁盘对上层文件系统的影响。当没有VM的时候,文件系统直接使用存储上的地址空间,因此文件系统直接受限于物理硬盘,这时如果发生磁盘空间不足的情况,对应用而言将是一场噩梦,不得不新增硬盘,然后重新进行数据复制。而VM则可以实现动态扩展,而对文件系统没有影响。另外,VM也可以把多个磁盘合并成一个磁盘,对文件系统呈现统一的地址空间,这个特性的杀伤力不言而喻。
存储—数据放在哪儿?如何访问?如何提高IO速度?
对应上图的Device Driver、IO Channel和Disk Device
数据最终会放在这里,因此,效率、数据安全、容灾是这里需要考虑的问题。而提高存储的性能,则可以直接提高物理IO的性能
2. Logical IO vs Physical IO
逻辑IO是操作系统发起的IO,这个数据可能会放在磁盘上,也可能会放在内存(文件系统的Cache)里。
物理IO是设备驱动发起的IO,这个数据最终会落在磁盘上。
逻辑IO和物理IO不是一一对应的。
IO系统的分层:
三层结构
上图层次比较多,但总的就是三部分。磁盘(存储)、VM(卷管理)和文件系统。专有名词不好理解,打个比方说:磁盘就相当于一块待用的空地;LVM相当于空地上的围墙(把空地划分成多个部分);文件系统则相当于每块空地上建的楼房(决定了有多少房间、房屋编号如何,能容纳多少人住);而房子里面住的人,则相当于系统里面存的数据。
文件系统—数据如何存放?
对应了上图的File System和Buffer Cache。
File System(文件系统):解决了空间管理的问题,即:数据如何存放、读取。
Buffer Cache:解决数据缓冲的问题。对读,进行cache,即:缓存经常要用到的数据;对写,进行buffer,缓冲一定数据以后,一次性进行写入。
VM—磁盘空间不足了怎么办?
对应上图的Vol Mgmt。
VM其实跟IO没有必然联系。他是处于文件系统和磁盘(存储)中间的一层。VM屏蔽了底层磁盘对上层文件系统的影响。当没有VM的时候,文件系统直接使用存储上的地址空间,因此文件系统直接受限于物理硬盘,这时如果发生磁盘空间不足的情况,对应用而言将是一场噩梦,不得不新增硬盘,然后重新进行数据复制。而VM则可以实现动态扩展,而对文件系统没有影响。另外,VM也可以把多个磁盘合并成一个磁盘,对文件系统呈现统一的地址空间,这个特性的杀伤力不言而喻。
存储—数据放在哪儿?如何访问?如何提高IO速度?
对应上图的Device Driver、IO Channel和Disk Device
数据最终会放在这里,因此,效率、数据安全、容灾是这里需要考虑的问题。而提高存储的性能,则可以直接提高物理IO的性能
2. Logical IO vs Physical IO
逻辑IO是操作系统发起的IO,这个数据可能会放在磁盘上,也可能会放在内存(文件系统的Cache)里。
物理IO是设备驱动发起的IO,这个数据最终会落在磁盘上。
逻辑IO和物理IO不是一一对应的。
相关文章推荐
- Java深度历险(五)——Java泛型
- 如何写测试案例
- 了解 Web 服务规范,第 6 部分: Web 服务互操作性
- Eclipse中建立JAX-WS的web服务-客户端
- poi和jxl 处理大数字时点击后变成科学计数法
- Nginx开启gzip
- CAS-Client客户端研究(二)-Cas20ProxyReceivingTicketValidationFilter
- JVM调优总结(五)-分代垃圾回收详述1
- CAS研究(一)-CAS协议
- Tomcat 6+Apache2.2负载均衡配置
- Postgres数据库忘记密码,三个步骤解决(windows下)
- win7-64下安装绿色mysql
- 防止SQL注入和XSS攻击Filter
- WIN7安装时没开AHCI,开启后蓝屏解决办法!
- FastDFS的配置、部署与API使用解读(7)Nginx的FastDFS模块
- maven中跳过单元测试
- CAS-Client客户端研究(三)-AssertionThreadLocalFilter
- solr 的使用及安装
- Spring Data MongoDB - Reference Documentation
- CAS-Client客户端研究(四)-HttpServletRequestWrapperFilter