如何迅速分析出系统I/O的瓶颈在哪里?
性能指标 老规矩,我们先来回顾一下,描述 I/O 的性能指标有哪些?你可以先回想一下文件系统和磁盘 I/O 的原理,结合下面这张 Linux 系统的 I/O 栈图,凭着记忆和理解自己写一写。或者,你也可以打开前面的文章,挨个复习总结一下。 说了这么久的 I/O 性能知识,一说起 I/O 指标,你应该首先会想到分类描述。我们要区分开文件系统和磁盘,分别用不同指标来描述它们的性能。 文件系统I/O性能指标 我们先来看文件系统的情况。 首先,最容易想到的是存储空间的使用情况,包括容量、使用量以及剩余空间等 。我们通常也称这些为磁盘空间的使用量,因为文件系统的数据最终还是存储在磁盘上。 不过要注意,这些只是文件系统向外展示的空间使用,而非在磁盘空间的真实用量,因为文件系统的元数据也会占用磁盘空间。 而且,如果你配置了 RAID,从文件系统看到的使用量跟实际磁盘的占用空间,也会因为RAID 级别的不同而不一样。比方说,配置 RAID10 后,你从文件系统最多也只能看到所有磁盘容量的一半。 除了数据本身的存储空间,还有一个 容易忽略的是索引节点的使用情况,它也包括容量、使用量以及剩余量等三个指标 。如果文件系统中存储过多的小文件,就可能碰到索引节点容量已满的问题。 其次,你应该想到的是前面多次提到过的缓存使用情况,包括页缓存、目录项缓存、索引节点缓存以及各个具体文件系统(如 ext4、XFS