![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IO
文章平均质量分 90
xiaofei0859
这个作者很懒,什么都没留下…
展开
-
什么是IO(一)- IO的分层
IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。 IO系统的分层: 三层结构上图层次比较多,但总的就是三部分。磁盘(存储)、VM(卷转载 2016-03-31 00:08:54 · 861 阅读 · 0 评论 -
read/fread write/fwrite 的实现原理
fread就是通过read来实现的,fread是C语言的库,而read是系统调用。差别在read每次读的数据是调用者要求的大小,比如调用者要求读取10个字节数据,read就会从内核缓冲区(操作系统开辟的一段空间用来存储磁盘上的数据)读10个字节数据到数组中,所以每次调用read会涉及到用户态与內核态之间的切换从而损耗一定的性能。而fread不一样,为了加快读的速度,fread每次都会从内核缓冲转载 2017-07-07 14:24:41 · 3754 阅读 · 0 评论 -
零拷贝原理-数据的收发-软中断和DMA
转载: http://blog.csdn.net/a417930422/article/details/52585862为何要懂零拷贝原理?因为rocketmq存储核心使用的就是零拷贝原理。io读写的方式中断DMA中断方式中断方式的流程图如下:用户进程发起数据读取请求系统调度为该进程分配cpucpu向io控制器(ide,scsi)发送io请求转载 2017-07-04 14:20:16 · 2934 阅读 · 0 评论 -
什么是多路复用
数据通信系统或计算机网络系统中,传输媒体的带宽或容量往往会大于传输单一信号的需求,为了有效地利用通信线路,希望一个信道同时传输多路信号,这就是所谓的多路复用技术(Multiplexing)。采用多路复用技术能把多个信号组合起来在一条物理信道上进行传输,在远距离传输时可大大节省电缆的安装和维护费用。频分多路复用FDM (Frequency Division Multiplexing)和时分多路复转载 2016-03-31 09:00:25 · 2589 阅读 · 0 评论 -
Linux五种IO模型性能分析
socket阻塞与非阻塞,同步与异步1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例转载 2016-03-31 00:23:32 · 526 阅读 · 0 评论 -
网络IO模型
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不转载 2016-03-31 00:21:19 · 345 阅读 · 0 评论 -
什么是IO(四)- 文件系统
文件系统各有不同,其最主要的目标就是解决磁盘空间的管理问题,同时提供高效性、安全性。如果在分布式环境下,则有相应的分布式文件系统。Linux上有ext系列,Windows上有Fat和NTFS。如图为一个linux下文件系统的结构。 其中VFS(Virtual File System)是Linux Kernel文件系统的一个模块,简单看就是一个Adapter,对下屏蔽了下层不同文件系统之间的转载 2016-03-31 00:11:21 · 863 阅读 · 0 评论 -
什么是IO(三)- IO性能的重要指标
最重要的三个指标 IOPSIOPS,即每秒钟处理的IO请求数量。IOPS是随机访问类型业务(OLTP类)很重要的一个参考指标。 一块物理硬盘能提供多少IOPS?从磁盘上进行数据读取时,比较重要的几个时间是:寻址时间(找到数据块的起始位置),旋转时间(等待磁盘旋转到数据块的起始位置),传输时间(读取数据的时间和返回的时间)。其中寻址时间是固定的(磁头定位到数据的存储转载 2016-03-31 00:10:06 · 9780 阅读 · 0 评论 -
什么是IO(八)- 三分天下
DAS、SAN和NAS 为了满足人们不断扩大的需求,存储方案也是在发展的。而DAS、SAN、NAS直接反映这种反映了这种趋势。 单台主机。在这种情况下,存储作为主机的一个或多个磁盘存在,这样局限性也是很明显的。由于受限于主机空间,一个主机只能装一块到几块硬盘,而硬盘空间时受限的,当磁盘满了以后,你不得不为主机更换更大空间的硬盘。独立存储空间。为了解决空间的转载 2016-03-31 00:17:13 · 493 阅读 · 0 评论 -
什么是IO(七)- RAID
Raid很基础,但是在存储系统中占据非常重要的地位,所有涉及存储的书籍都会提到RAID。RAID通过磁盘冗余的方式提高了可用性和可高性,一方面增加了数据读写速度,另一方面增加了数据的安全性。 RAID 0 对数据进行条带化。使用两个磁盘交替存放连续数据。因此可以实现并发读写,但带来的问题是如果一个磁盘损坏,另外一个磁盘的数据将失去意义。RAID 0最少需要2块盘。转载 2016-03-31 00:16:06 · 1317 阅读 · 0 评论 -
什么是IO(六)- Driver & IO Channel
这部分值得一说的是多路径问题。IO部分的高可用性在整个应用系统中可以说是最关键的,应用层可以坏掉一两台机器没有问题,但是如果IO不通了,整个系统都没法使用。如图为一个典型的SAN网络,从主机到磁盘,所有路径上都提供了冗余,以备发生通路中断的情况。 OS配置了2块光纤卡,分别连不同交换机SAN网络配置了2个交换机存储配置了2个Controller,分别连不同交换机转载 2016-03-31 00:14:50 · 657 阅读 · 0 评论 -
什么是IO(五)- 逻辑卷管理
LVM(逻辑卷管理),位于操作系统和硬盘之间,LVM屏蔽了底层硬盘带来的复杂性。最简单的,LVM使得N块硬盘在OS看来成为一块硬盘,大大提高了系统可用性。 LVM的引入,使得文件系统和底层磁盘之间的关系变得更为灵活,而且更方便关系。LVM有以下特点: 统一进行磁盘管理。按需分配空间,提供动态扩展。条带化(Striped)镜像(mirrored)快照(snapshot)转载 2016-03-31 00:13:41 · 954 阅读 · 0 评论 -
mmap和direct io和write和fwrite区别
看完此文,题目不言自明。转自 http://blog.chinaunix.net/uid-27105712-id-3270102.html在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。转载 2017-07-07 14:07:05 · 1596 阅读 · 2 评论