9.1 术语
1.虚拟磁盘:存储设备的模拟。在系统看来,这是一块物理磁盘。但是,它可能由多个磁盘组成。
2.传输总线:用来通信的物理总线,包括数据传输IO以及其他磁盘命令
3.扇区:磁盘上的一块存储块,通常是512B大小
4.IO:对于磁盘,严格来说仅仅包含读和写,而不包括其他磁盘命令。
5.磁盘命令:除了读写外,磁盘还会被指派执行其他非数据传输的命令
6.吞吐量:对于磁盘而言,吞吐量通常指当前数据传输速率
7.带宽:这是存储传输后者控制器能够达到的最大传输速率
8.IO延时:一个IO操作的执行时间。
9.延时离群点:非同寻常的高延时磁盘IO
9.2 模型
9.2.1 简单磁盘
9.2.2 缓存磁盘
9.2.3 控制器
9.3 概念
9.3.1 测量时间
存储设备的响应时间(磁盘IO延时)指的是从IO请求到结束的时间。它由服务和等待时间组成。
磁盘服务时间 = 使用率/iops
9.3.2 时间尺度
9.3.3 缓存
最好的磁盘IO性能就是没有IO。
9.3.4 随机 vs 连续I/O
9.3.5 读/写比
9.3.6 I/O 大小
9.3.7 IOPS 并不平等
9.3.8 非数据传输磁盘命令
9.3.9 使用率
9.3.10 饱和度
9.3.11 I/O 等待
9.3.12 同步 vs 异步
9.3.13 磁盘 vs 应用程序IO
9.4 架构
9.4.1 磁盘类型
9.4.2 接口
9.4.3 存储类型
9.4.4 操作系统磁盘I/O 栈
9.5 方法
9.5.1 工具法
9.5.2 USE 方法
9.5.3 性能监控
磁盘使用率
响应时间
9.5.4 负载特征归纳
9.5.5 延时分析
9.5.6 事件跟踪
9.5.7 静态性能调优
9.5.8 缓存调优
9.5.9 资源控制
9.5.10 微基准测试
9.5.11 伸缩
9.6 分析
9.6.1 iostat
9.6.2 sar
9.6.3 pidstat
9.6.4 DTrace
9.6.5 SystemTap
9.6.6 perf
9.6.7 iotop
9.6.8 iosnoop
9.6.9 blktrace
9.6.10 MegaCli
9.6.11 smartctl
9.6.12 可视化
9.7 实验
9.7.1 Ad Hoc
9.7.2 自定义负载生成器
9.7.3 微基准测试工具
9.7.4 随机读示例
9.8 调优
9.8.1 操作系统可调参数
9.8.2 磁盘设备可调参数
9.8.3 磁盘控制器可调参数