的/ proc / SYS / FS / AIO-NR是从不大于1024(AIO在Linux)(/p

2019-10-18 10:33发布

我试图在Linux上使用异步IO。 据我所知,是3个选项:

  • 内核调用(io_submit和朋友)
  • libRT - 使用用户空间线程
  • libRTKAIO - 内核的包装要求不使用线程

我使用的是最后的选择,而我看到,在运行了很多多个线程异步IO请求我的单元测试,的/ proc / SYS / FS / AIO-NR不会比1024更高的我不知道这样的规定局限性。

我给自己定的/ proc / SYS / FS / AIO-MAX-NR 16M的,所以它不是一个问题。

一个相关的问题(也是我的) aio_write与rtkaio Linux是长

Answer 1:

有一个名为“io_setup”系统调用。 在librtkaio此调用接收1024作为参数。 这一点,因为我描述的,如果有是在平行超过1024个IOS损害性能导致恒1024。 请注意,1024是硬编码。

只有调用lio_listio会将其阻塞模式将允许你提出这个1024吧。



文章来源: /proc/sys/fs/aio-nr is never higher than 1024 (AIO on linux)