我们可以根据存储的特性将存储分为内存和外存:内存:又叫做主存储器,计算机中所有程序的运行都是在内存中进行。外存:又叫做辅助存储器,因为内存容量小且断电会丢失所有数据。所以用来实现数据的持久化存储。例如:硬盘,U盘,软盘,光盘硬盘和磁盘的关系:包含关系,磁盘是一个广泛的概念,是一个总的称呼,用来描述多种不同类型的存储介质,包括硬盘、软盘、光盘、闪存盘等等。所以硬盘也可以被称为磁盘,因为硬盘也是一种磁
转载
2024-02-26 20:38:06
74阅读
IO类型同步与异步(synchronous,asynchronous):关注消息通知机制同步:进程发出系统调用之后,不会立即有返回信息,但是一旦有返回信息,则一定是最终结果.异步:进程发出系统调用之后,会有立即返回结果,但不是最终的结果,当内核处理完成之后,内核通过通知机制通知进程,该系统调用已完成.阻塞与非阻塞(blocking,nonblocking):关注系统调用完成时,调用者的状态阻塞:调
原创
2021-03-17 17:35:35
405阅读
以下内容仅表示自己的学习笔记,对其中一些知识的见解,防止遗忘,不喜勿喷。错误之处,欢迎发邮箱指导:738254743@qq.com 阻塞:没有获得资源则进程挂起,直到获取资源为止。挂起进程进入睡眠状态,给调度的等待队列移走,直到等待条件满足。非阻塞:操作设备部不挂起,或放弃,或反复查询。非阻塞和阻塞区别:非阻塞:不断查询,消耗CPU;阻塞时进程进入休眠状态,将CPU资源让给其他资源阻塞唤醒:1,唤
原创
2015-06-20 00:06:42
1323阅读
Linux 磁盘 I/O 工作分三层: 设备层、通用块层 和 文件系统层一、设备层 也就是 磁盘。磁盘可以分为两类:机械磁盘和固态磁盘。1. 机械磁盘:缩写为 HDD。 I/O 请求连续,就不需要磁道寻址,可以获得最佳性能。 随机 I/O,需要不停地移动磁头,读写速度就会比较慢。
转载
2024-06-12 23:12:16
38阅读
Linux IO (Input/Output)系统提供了一种在Linux操作系统上进行输入和输出操作的方式。其中,红帽公司的Linux发行版作为业界一流的操作系统之一,也具有强大的IO特性。下面我们来聊一聊Linux IO在红帽系统上的应用情况。
首先,Linux IO系统采用一种基于文件的IO模型,即在Linux系统中一切皆文件的思想。这意味着无论是网络通信、外设操作还是进程间通信,都可以通过
原创
2024-03-14 09:55:06
119阅读
在Java IO类库中主要分两类,一类面向字节(byte[]),一类面向字符(char,String)。1.面向字节类
面向字节类的超类就是InputStream/OutputStream, 显然这两个类被设计为抽象类。下面以InputSream及其派生类来总结面向字节IO类。OutputStream分支和InputStream对称。
Java的IO类库是一个典型的装饰器模式(java
转载
2023-07-15 01:00:26
60阅读
java io,相信大家都用得不少,文件上传,配置文件读取,socket通信等等,几乎所有的应用程序中都能见到它的身影;你真的了解它吗,翻了翻java io的源码,决定稍微梳理一下。对io的分类,有不同的方法,字节流&字符流, 输入流&输出流。下面从代码的角度整理了一下:stream、reader&writer.streamFilterInputStream内部引用了一个I
转载
2023-09-01 16:42:39
90阅读
不同应用通常具有不同的I/O类型,了解应用的I/O类型是为其设计解决方案、排错性能问题的首要工作。那I/O类型通常包括哪些需要考虑的因素?我们今天就来谈一谈I/O类型的几个重要方面。
原创
2013-11-22 17:30:17
770阅读
每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue),而每个请求队列都可以选择一个I/O调度器来协调所递交的request。I/O调度器的基本目的是将请求按照它们对应在块设备上的扇区号进行排列,以减少磁头的移动,提高效率。每个设备的请求队列里的请求将按顺序被响应。实际上,
转载
2019-03-19 10:12:00
150阅读
2评论
监控io性能iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析iostat -x说明: util%:表示io等待占比,正常情况下该值和磁盘读写(r/w)成正比,如果该值很大,读写数值很小则说明磁盘存在问题,系统
转载
2024-04-24 23:56:46
237阅读
三十、监控IO性能、free命令、ps命令、netstat查看网络状态、Linux下抓包一、监控IO性能CPU、内存有剩余,但是系统负载还是很高,用vmstat查看发现b列或者wa列比较大,就说明磁盘有问题,那么就要更详细的查看磁盘。
iostat命令:在安装sysstat包时就会安装此命令。
用法:可以直接输入查看,也可以加数字1,类似vmstat。
# iostat
Linux 3.10.0-
转载
2024-07-25 12:19:53
107阅读
1、首先使用vmstat 观察wa(wait IO),如果wa 不断增大,保持在50以上的水位,说明有大量的IO。2、从top也可以观察wa(wait IO)值的变化,而且可以根据top观察那个进程的cpu占有率高,占用CPU时长多(从TIME中可以看出),来判断那个进程不断的进行IO操作。例如:在NFS中运行应用程序,链接大小很大的动态库,比如40M,程序在第一次运行的时候,需要从网络加载动态库
转载
2024-05-08 13:35:59
236阅读
一、JAVA的NIO和IO1、NIO:面向缓冲区(buffer)(分为非阻塞模式IO和阻塞模式IO)组成部分:Channels管道,Buffers缓冲区,Selectors选择器
2、IO:面向流(Stream)(阻塞的IO)
面向流:当一个线程调用read() 或 write()时,线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了。流就像一根水管从操作系统的缓存
转载
2023-08-19 18:12:48
37阅读
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待
原创
2022-03-30 14:19:06
135阅读
前言 前面两篇文章(Java NIO之理解I/O模型(一)、Java NIO之理解I/O模型(二))介绍了,IO的机制,以及几种IO模型的内容,还有涉及到的设计模式。这次要写一些更贴近实际一些的内容了,终于要说到了Java中的各种IO了。我也是边学边理解,有写的不对的地方,欢迎小伙伴们指出和补充。Java中的IO分类BIOBIO是指 Blocking IO 在JDK1.0的时候就引入
转载
2023-07-31 20:03:48
42阅读
块做为文件系统的抽象,它是I/O中最基本的概念——所有的磁盘操作都是基于块进行的。因此,当请求以块大小整数倍对齐地址时,I/O效率是最理想的。操作效率随着系统调用次数的增多而急剧下降,例如,每次读一字节读1024次与一次读1024字节相比,显然后者效率更优。如果长度不是block的整数倍,即使每次以大于块的长度进行一系列的操作,其效率也不是最理想的。例如块的大小是1K,每次以1130字节的长度操作
原创
2018-01-03 09:24:01
2184阅读
Linux内核实现I/O主要在三个内核子系统:虚拟文件系统(VFS),页缓存,和页回写。虚拟文件系统(有时也叫做virtualfileswitch)是一种Linux内核的文件操作的抽象机制。它允许内核在无需了解文件系统类型的情况下,使用文件系统函数和操作文件系统数据。VFS实现这种抽象的方法是使用一种通用文件模型,它是所有Linux文件系统的基础。基于函数指针和各种面向对象方法,通用文件模型提供了
原创
2018-01-15 09:36:52
2337阅读
直接文件IO与其他现代操作系统内核一样,Linux内核实现了一个复杂的缓存、缓冲以及设备和应用之间的I/O管理的层次结构。一个高性能应用可能希望越过这些复杂的层次结构并进行独立的I/O管理,如数据库系统,比较倾向于使用他们自己的缓存机制,以尽可能的减少操作系统的影响。系统提供O_DIRECT标志给open系统调用,会绕过内核的页面缓存,直接启动用户空间的缓冲区与设备之间的IO,所有IO将会同步,直
原创
2018-01-08 09:57:58
2556阅读
为了方便理解与阐述,先引入两张图:a、Java IO中常用的类 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了 Java I/O主要包括如下几个层次,包含三个部分:1
转载
2024-01-10 22:38:27
75阅读
1,什么是文件任何一个进程在对文件进行读写操作前,都需要先打开该文件。操作系统内核为每个进程维护一个打开文件的列表,该列表是一个指针数组,指向每个打开文件的元数据,其中包括指向文件inode的内存拷贝,文件位置和访问模式等),数组的索引即文件描述符(filedescriptors),进程通过文件描述符即可进行文件的读写。同其他所有类Unix系统一样,Linux也本着“一切皆文件”的设计原则。除了保
原创
2017-12-28 12:59:38
2115阅读