我正在尝试在linux上使用async io。据我所知,有3种选择:
我正在使用最后一个选项,我看,在我的单元测试中,在多个线程中运行了很多异步io请求,/ proc / sys / fs / aio-nr永远不会高于1024.我不知道在哪里提出这样的限制。
我将/ proc / sys / fs / aio-max-nr设置为16M,所以这不是问题。
答案 0 :(得分:1)
有一个名为“io_setup”的系统调用。在librtkaio中,此调用接收1024作为参数。这导致我所描述的常数1024,并且如果并行超过1024个ios会损害性能。 请注意,1024是硬编码的。
只有在阻止模式下调用lio_listio才能提高1024 bar。