性能指标
文件系统I/O性能指标
最容易想到的是存储空间的使用情况,包括容量、使用量以及剩余空间等。我们通常也称这些为磁盘空间的使用量,因为文件系统的数据最终还是存储在磁盘上。
元数据
这些只是文件系统向外展示的空间使用,而非在磁盘空间的真实用量,因为文件系统的元数据也会占用磁盘空间。
RAID
如果你配置了 RAID,从文件系统看到的使用量跟实际磁盘的占用空间,也会因为RAID 级别的不同而不一样。比方说,配置 RAID10 后,你从文件系统最多也只能看到所有磁盘容量的一半。
索引节点
如果文件系统中存储过多的小文件,就可能碰到索引节点容量已满的问题
缓存
页缓存、目录项缓存、索引节点缓存以及各个具体文件系统(如 ext4、XFS 等)的缓存。这些缓存会使用速度更快的内存,用来临时存储文件数据或者文件系统的元数据,从而可以减少访问慢速磁盘的次数。
文件 I/O
- IOPS(包括 r/s 和 w/s)
- 响应时间(延迟)
- 吞吐量(B/s)
在考察这类指标时,通常还要考虑实际文件的读写情况。比如,结合文件大小、文件数量、I/O 类型等,综合分析文件 I/O 的性能
通过系统调用、动态跟踪或者基准测试等方法,间接进行观察、评估得到这些KPI。
磁盘I/O性能指标
四个核心的磁盘 I/O 指标
- 使用率,是指磁盘忙处理 I/O 请求的百分比。过高的使用率(比如超过 60 - 80%,要结合实际硬件水平)通常意味着磁盘 I/O 存在性能瓶颈。
- IOPS(Input/Output Per Second),是指每秒的 I/O 请求数。
- 吞吐量,是指每秒的 I/O 请求大小。
- 响应时间,是指从发出 I/O 请求到收到响应的间隔时间。
分析场景
如读写类型(顺序还是随机)、读写比例、读写大小、存储类型(有无 RAID 以及 RAID 级别、本地存储还是网络存储)等
缓冲区(Buffer)对I/O分析的影响
buffer的使用经常出现在内存和磁盘问题
性能指标找工具
从工具能知道哪些指标
如何迅速分析 I/O 的性能瓶颈
1. 先用 iostat 发现磁盘 I/O 性能瓶颈;
2. 再借助 pidstat ,定位出导致瓶颈的进程;
3. 随后分析进程的 I/O 行为;
4. 最后,结合应用程序的原理,分析这些 I/O 的来源。