1. 知识点归纳

1.1 Linux文件系统

  • 每个文件的两种数据结构:索引节点、目录项
    • 索引节点:用来记录文件的元数据
    • 目录项:维护文件系统的树状结构
  • 文件数据
  • 虚拟文件系统(VFS)
    • 基于磁盘的文件系统
    • 基于内存的文件系统
    • 网络文件系统,用来访问其他计算机数据的文件系统
  • 文件系统的I/O
    • 缓冲I/O与非缓冲I/O
    • 直接 I/O 与非直接 I/O
    • 阻塞 I/O 和非阻塞 I/O
    • 同步和异步 I/O
  • 性能指标
    • 容量
      • df /dev/fd
    • 缓存
      • cat /proc/meminfo | grep -E "SReclaimable|Cached"
      • cat /proc/slabinfo | grep -E '^#|dentry|inode'
      • slabtop

1.2 磁盘

  • 磁盘是持久化存储的设备
    • 机械磁盘
    • 固态磁盘
  • 通用块:处在文件系统和磁盘驱动中间的一个块设备抽象层
  • I/O栈
    • 文件系统层
    • 通用块层
    • 设备层
  • 性能指标
    • 使用率
    • 饱和度
    • IOPS
    • 吞吐量
    • 响应时间
  • 观测工具
    • iostat:磁盘I/O使用率、IOPS、吞吐量、响应时间
    • pidstat -d:进程I/O
    • iotop:进程I/O
    • blktrace:块设备I/O跟踪
    • trace:进程I/O跟踪