目录
前言
本文介绍Linux性能优化之磁盘I/O和文件系统。同 CPU、内存一样,磁盘和文件系统的管理,也是操作系统最核心的功能。
基础知识
文件系统
概述
文件系统,是对存储设备上的文件,进行组织管理的一种机制。为了支持各类不同的文件系统,Linux 在各种文件系统实现上,抽象了一层虚拟文件系统(VFS)。
虚拟文件系统(VFS)定义了一组所有文件系统都支持的数据结构和标准接口。这样,用户进程和内核中的其他子系统,只需要跟 VFS 提供的统一接口进行交互就可以了,而不需要再关心底层各种文件系统的实现细节。
为了降低慢速磁盘对性能的影响,文件系统又通过页缓存、目录项缓存以及索引节点缓存,缓和磁盘延迟对应用程序的影响。
四大要素
- 目录项:记录文件的名字、索引节点指针以及与其他目录项的关联关系。多个关联的目录项,就构成了文件系统的目录结构。不过,不同于索引节点,目录项是由内核维护的一个内存数据结构(内存缓存)。
- 索引节点:记录文件的元数据,比如 inode 编号、文件大小、访问权限、修改日期、数据的位置等;索引节点和文件