c/c++语言开发共享linux上使用rtkaio的aio_write有时很长

我在linux上使用async io和rtkaio库。 在我的测试中,一切都很完美,但是,在我的实际应用程序中,我看到aio_write应该返回非常快,非常慢。 将128KB写入O_DIRECT填充文件可能需要100多毫安。 我的测试和应用程序使用相同的I / O大小,我检查相同的文件系统(GFS)。

我添加了计数,我发现有大约50%的异步io操作是短的(短于2毫米)和50%的长(超过2毫米)。

我还检查了测试和应用程序都使用相同的rtkaio库。

我很丢失,任何想法我应该在哪里看?

另一个我的相关问题: / proc / sys / fs / aio-nr永远不会高于1024(Linux上的AIO)

    我并不是要沮丧,但我怀疑你会得到一个非常有用的答案,因为这里有太多的变量(一个集群文件系统,异步I / O, O_DIRECT等),以及除非有人特别熟悉您的设置,否则任何人都可以做的最好的建议就是给你一些模糊的建议。

    我想你应该首先尝试确定它是否是实际的写入速度慢,或者它是否是异步回调处理程序的调用需要很长时间。 您可以尝试使用常规同步写入调用替换对aio_write调用。 另外,你提到的写入尺寸看起来很小,为什么你使用O_DIRECT ? 如果有很多小写,我认为O_DIRECT会降低性能。

    你用open()文件吗?

    确保您使用O_NONBLOCK打开文件,并使用O_WRONLY打开。

      以上就是c/c++开发分享linux上使用rtkaio的aio_write有时很长相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/544910.html

      (0)
      上一篇 2021年1月9日
      下一篇 2021年1月9日

      精彩推荐