问题一:

问题一:

我打算比较不同的三个 I/O 调度程序:“noop”、“cfq”和“deadline”,并且我计划比较它们的随机读取和写入。到目前为止,我发现的唯一有意义的案例如下:

  • 阅读:使用缓存和同步
  • 读取:不带缓存且带同步
  • 读取:无缓存且无同步
  • 阅读:带缓存且不同步。

(以上所有顺序和非顺序)

  • 写:带缓存
  • 写:不带缓存

(我认为顺序和非顺序在这里也相关)

我计划进行单线程和多线程的写入测试。

问题一:

我错过了其他有意义的案例来测试吗?

问题2:

写入时,我是否应该期望重复写入随机数据或仅写入某些字符之间存在任何有意义的差异?

Q3:

有哪些值得研究的有趣的块大小?我应该写入/读取多少个块?在基准测试期间是否需要改变读取/写入的块数量,或者对于每种情况使用一致的大小是否更好?即使用基准测试

  • 块大小 = 512
  • 块大小 = 1024 ...

或者看看当第一次读取是某个数字而下一次读取是其他数量的块时会发生什么更有趣?我应该尝试不能被 2 整除的块大小吗?


当然,除了 Q1 之外,许多这些问题的答案都可以通过简单地运行更多测试来确定。我只是想避免不必要的基准,以便能够更定性地关注相关数据。可以运行的测试组合实在是太多了。

相关内容