1. 背景

本系列文章整体脉络回顾,

  • Linux Block Driver - 1介绍了一个只有 200 行源码的 Sampleblk 块驱动的实现。
  • Linux Block Driver - 2中,在 Sampleblk 驱动创建了 Ext4 文件系统,并做了一个fio顺序写测试。 测试中我们利用 Linux 的各种跟踪工具,对这个fio测试做了一个性能个性化分析。
  • Linux Block Driver - 3中,利用 Linux 跟踪工具和 Flamegraph 来对文件系统层面上的文件 IO 内部实现,有了一个概括性的了解。
  • Linux Block Driver - 4里,在之前同样的fio顺序写测试下,分析 Sampleblk 块设备的 IO 性能特征,大小,延迟,统计分布,IOPS,吞吐等。
  • Linux Block Driver - 5中,使用blktrace跟踪了fio顺序写测试的 IO 操作,并对跟踪结果和 IO 流程做了详细总结。
  • Linux Block Driver - 6里,我们解决了 BIO 拆分的问题,进一步理解了吞吐,延迟和 IOPS 的关系。

本文将继续之前的实验,围绕这个简单的fio测试,探究 Linux 块设备驱动的运作机制。除非特别指明,本文中所有 Linux 内核源码引用都基于 4.6.0。其它内核版本可能会有较大差异。

2. 准备

阅读本文前,可能需要如下准备工作,

本文将在与前文完全相同fio测试负载下,使用blktrace在块设备层面对该测试做进一步的分析。

3. IO 调度器基本原理

4. 实验

5. 小结

results matching ""

    No results matching ""