gpt4 book ai didi

filesystems - posix 读取延迟()

转载 作者:行者123 更新时间:2023-12-02 05:11:38 26 4
gpt4 key购买 nike

我们有一个对延迟非常敏感的应用程序,从某种意义上说,读取时的延迟峰值非常非常糟糕。

我已经测试了 XFS 和 ext4,将 O_ASYNC 写入文件,然后在最后写入 fdatasync() 会导致读取延迟出现 1 秒或更多的峰值!

然后我尝试了 O_SYNC,我得到了更稳定的读取延迟,但写入文件的速度非常慢。

因此,我尝试编写 O_ASYNC 并在写入文件的每 5 MB 同步一次,它的速度和读取延迟也相当稳定。

但是,30 分钟后我仍然可以获得需要一秒或更长时间的阅读。

如果您在 Linux 上构建对延迟敏感的应用程序,您是如何处理文件系统的,还是根本不使用它并将设备作为 RAW 设备安装?

最佳答案

文件系统总是会增加少量延迟,因此对于真正对延迟敏感的应用程序,我会考虑通过使用原始设备或使用 O_DIRECT 打开文件绕过操作系统缓存来绕过文件系统。

SSD 存储延迟的其他技巧是:

  • 通过从多个线程读取/写入来使用现代 SSD 中固有的并行性。延迟不会减少,但如果真正的问题是 IOPS,这会有所帮助。
  • 检查 SSD 上文件系统的对齐情况。如果做得不好,性能会减半,延迟会加倍。
  • 检查磁盘调度算法。 Linux“noop”调度程序通常最适合基于 SSD 的存储。
  • 使用更好的 SSD 硬件,例如基于 PCIe 的 SSD 通常提供更低的延迟

就是说:从一秒开始的阅读时间听起来不对。要么负载/利用率太高,以至于硬件根本无法应对,更多/更好的硬件将是最好的解决方案,要么其他地方出现严重错误。

关于filesystems - posix 读取延迟(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com