我有一台Western Digital 500 GB内置SSD(WDS500G1B0A)。其规范规定了525 mbps的连续写入速度。我用f2fs格式化了这个SSD。
然后我执行顺序写入……
让我首先承认,我对80 k IOPS没有O_SYNC标志感到困惑,因为它们恰好与SSD IOPS(525 MB / 4k blockize~100 k IOPS)相吻合。对于我的分析,我应该坚持525 MB的吞吐量规格。我观察到的是,即使使用O_SYNC标志,SSD吞吐量确实接近此规范,尽管块大小非常大(大约16 MB),这是可以理解的。
由于没有O_SYNC标志,linux必须在内存内核缓冲区中提交写入,我们无法真正将其用于底层SSD IO性能分析。它必须依赖于硬件的其他因素,如内存,CPU等。在更强大的服务器上,我甚至可以看到2000 MBps,这在SSD级别是不现实的。
即使没有O_SYNC标志,SSD也可以比HDD更好地执行,而写入会定期刷新到磁盘,因为这对于顶部的IO应用程序来说是一个合理的模型。如果有兴趣的话,我可以用这个分析分享我的数字。
很抱歉与我原来的问题不同。无论如何,这是一个很好的学习。因此我想在这里发布我的答案。