前言
我们继续看Linux的性能指标,今天我们来聊I/O这块。说到I/O,指的是文件系统和磁盘的输入输出。同CPU、内存一样,文件系统和磁盘也是操作系统中最核心的功能。本文从文件系统和磁盘的工作原理出发,理解Linux I/O的性能指标。
Linux文件系统与磁盘是怎么工作的
磁盘为操作系统提供了最基本的持久化存储,而文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。
我们平时说的文件,指的是文件系统上的文件,当写文件时,先经过文件系统,再持久化到磁盘中。
而对于磁盘来说,作用范围不止于文件系统,磁盘本身是一个块设备文件,操作系统能够直接读写块设备文件,这时就不会经过文件系统。
接下来我们分别来看两者的工作方式。
文件系统如何工作
文件系统是对存储设备上的文件,进行组织管理的机制,组织方式不同,就回形成不同的文件系统,如ext4、xfs等文件系统。
管理范围
在Linux中一切皆文件,文件系统的管理范围就包括
- 普通文件和目录
- 块设备,如磁盘、U盘、SD卡
- 套接字,即socket,进程间通信机制,如网络调用中以socket方式请求
- 管道,进程间通信方式
管理的数据结构
为了方便管理,Linux文件系统为每个文件都分配两个数据结构,索引节点(index node)和目录项(di