什么"典型" SSD的延迟意味着什么?

时间:2017-10-26 11:04:57

标签: linux io benchmarking ssd

我正在阅读英特尔的SSD产品specification。那里有一张桌子说

Latency (typical) read/write < 10 us

但没有更多细节解释这个数字。有谁知道&#34;典型的&#34;意思?这是不是意味着:

  • 4KB顺序写?
  • 队列深度= 1?
  • 这次包括在每次写操作后执行fsync()吗?或者它只包括时间 写入缓冲区?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这些规范是关于操作系统发送I / O并从磁盘接收到I / O的响应时通常的延迟/带宽。

  

[是不是意味着] 4KB顺序写?

你必须在更详细的规格中查看。 “典型”这个词是故意模糊的,但我想只要你的I / O不是太大(64k或更低),它们在延迟时间方面是顺序的还是随机的都无关紧要。

  

[是不是]队列深度= 1?

你也必须在更详细的规格中查看它,但我认为从SSD的角度来看至少可以达到32 的深度(但它可能要高得多)< / p>

  

这次是否包括在每次写操作后执行fsync()?或者它只包括写入缓冲区的时间?

“鉴于上下文,你的问题很奇怪而且令人困惑”。英特尔可能没有包含这些数字的文件系统开销,而只讨论从“直接到磁盘”操作的I / O. fsync更像是一个文件系统概念,与英特尔正在谈论的内容正交。

在Linux(fio)的说法中,英特尔号码可能来自直接提交给块设备的I / O,例如当你使用--filename=/dev/sdb --direct=1 --ioengine=libaio时,因为这会排除文件系统开销和Linux页面缓存干扰,但可以快速提交多个I / O.正如您之前提到的那样,您也需要了解iodepth(尽管您不会看到延迟比iodepth为1的延迟更好,但您不会看到异步I / O引擎带来的好处只有1)的深度。

警告:fio 破坏性销毁数据,尤其是在整个块设备上运行时。请确保您仅在可以完全销毁的环境中进行基准测试,因为一个单据并且数据已经消失。

我现在正在退房,不再跟进了。正如评论中所建议的那样,我认为这个问题不适合Stack Overflow,但希望你能找到合适的论坛来提出这些问题(超级用户确实听起来更好)。祝你好运!