在哪里可以获取有关 Linux 2.6.x 上 aio 的最新信息
最近我正在学习如何编写一个高性能的Web服务器。RedHat有一个实验说epoll比aio更快。有人说这是因为Linux内核中的aio是用pthread实现的。我很难找到最新的信息来证明这一点。而且我不知道现在Linux上的epoll还比aio更好吗?所以我想知道在哪里可以得到关于Linux 2.6.x上的aio的最新信息。非常感谢!
Recently I am learning how to write a high performance web server.There is a experiment by RedHat says that epoll is faster than aio. someone says that because aio in Linux kernel is implemented with pthread. It's difficult for me to find latest information to prove this.Also I don't know is epoll still better than aio now on Linux?So I want to know where can I get the newest information about aio on Linux 2.6.x. Thx a lot!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我正在研究同一领域。
你甚至可以让 aio 在 Linux 上工作吗?我用aio_write()写入300M,并将它们视为缓存中的脏页。这意味着它们不会直接进入 IO 调度程序,而是进入 VM 以及稍后的 pdflush/flush。这意味着 aio 与缓冲 io 一样好/坏。
我在构建机器上使用 2.6.16.46,在目标上使用 2.6.27.19。这并不是最新的 Linux 内核/库,因此这可能是一个问题。
另一个方面是您使用的 IO 调度程序。 CFQ 支持同步 IO,但可以针对异步进行调整。它还支持 IO 优先级。
对于初学者,我建议您在执行 IO 时观察几个地方:
I'm researching the same area.
Can you even make aio on Linux work? I write 300M with aio_write() and see them as dirty pages in the cache. That means they don't go directly to the IO scheduler, but to the VM and later pdflush/flush. Which means aio is as good/bad as just buffered io.
I'm on 2.6.16.46 on the build machine and 2.6.27.19 on the target. This isn't exactly newest Linux kernel/libs, so that may be a problem.
Another aspect is the IO scheduler you use. CFQ favors synchronous IO, but may be tuned for async. It also supports IO priorities.
For starters, I would recommend watching a few places when you execute your IO: