我们有一个非常对延迟敏感的应用程序,因为读取的延迟峰值非常非常糟糕。
我测试了XFS和ext4,并将O_ASYNC写入文件,最后fdatasync()结果可能导致1秒或更长的读取延迟峰值!
然后我尝试了O_SYNC并且我获得了更稳定的读取延迟,但写入文件非常慢。
所以,我尝试编写O_ASYNC并同步写入文件的每5兆字节,其快速和读取延迟也相当稳定。
然而,30分钟我仍然可以获得需要一秒钟或更长时间的阅读。
如果您在Linux上构建了对延迟敏感的应用程序,那么您是如何处理文件系统的,或者您根本不使用它并将设备安装为RAW设备?
答案 0 :(得分:0)
文件系统总是会增加少量延迟,因此对于真正对延迟敏感的应用程序,我会考虑使用原始设备绕过文件系统,或者使用O_DIRECT绕过操作系统缓存打开文件。
SSD存储延迟的其他技巧包括:
那说:一秒钟的阅读时间听起来不对。无论是负载/利用率如此之高,以至于硬件根本无法应对,而更多/更好的硬件将是最佳解决方案,或者其他方面是非常错误的。