我正在阅读英特尔的SSD产品规格。在那里,有一张桌子说
延迟(典型)读/写< 10我们但没有更多细节解释这个数字。有谁知道…
这些规范是关于操作系统发送I / O并从磁盘接收到I / O的响应时通常的延迟/带宽。
[这是不是意味着] 4KB顺序写?
你需要在更详细的规格中查看。 “典型”这个词是故意模糊的,但我想只要你的I / O不是太大(64k或更小),它们在延迟时间方面是顺序的还是随机的都无关紧要。
[是不是意味着]队列深度= 1?
您还必须在更详细的规格中查看它,但我想这至少可以达到32的深度 从SSD的角度来看 (但它可能会高得多)
这次是否包括在每次写操作后执行fsync()?或者它只包括写入缓冲区的时间?
“鉴于上下文,你的问题很奇怪而且令人困惑”。英特尔可能没有包含这些数字的文件系统开销,而只讨论从“直接到磁盘”操作的I / O. fsync 更像是一个文件系统概念,与英特尔正在谈论的内容正交。
fsync
在Linux(fio)的说法中,英特尔的数字很可能来自提交的I / O. 直接到块设备 例如当你喜欢的时候使用 --filename=/dev/sdb --direct=1 --ioengine=libaio 因为这会排除文件系统开销和Linux页面缓存干扰,但可以快速提交多个I / O.正如您之前提到的那样,您也需要知道iodepth(虽然您不会看到延迟比iodepth为1更好,但您不会看到异步I / O引擎带来的好处只有1)的深度。
--filename=/dev/sdb --direct=1 --ioengine=libaio
的 警告 强> :fio是 的 有害 强> 和 的 破坏数据 强> 特别是在整个块设备上运行时。请确保您仅在可以完全销毁的环境中进行基准测试,因为一个单据并且数据已经消失。
我现在正在签字,不再跟进了。正如评论中所建议的那样,我认为这个问题不适合Stack Overflow,但希望你能找到合适的论坛来提出这些问题(超级用户确实听起来更好)。祝好运!