最近我正在学习如何编写一个高性能的web服务器,redhat做了一个实验,说epoll比aio快。有人这么说是因为linux内核中的aio是用pthread实现的。我很难找到最新的信息来证明这一点。我也不知道epoll现在在linux上比aio好吗?所以我想知道我在哪里可以得到关于linux 2.6.x.thx上aio的最新信息!
最佳答案
我在研究同一个领域。
你能让linux上的aio工作吗?我用aio_write()编写了300万个,并将它们视为缓存中的脏页。这意味着它们不直接进入io调度程序,而是进入vm,然后进入pdflush/flush。这意味着aio和缓冲io一样好/坏。
我在2.6.16.46和2.6.27.19上。这并不是最新的linux内核/libs,所以这可能是个问题。
另一个方面是您使用的IO调度程序。cfq支持同步io,但可以针对异步进行调整。它还支持IO优先级。
首先,我建议您在执行IO时注意以下几个地方:
/proc/meminfo-查看脏页趋势
echo 1>/proc/sys/vm/block_dump并查看syslog,您将看到谁在编写以及何时
sar-dp 1-看看你的设备是否被100%利用
cd/proc;cat*/status grep state-查看谁在磁盘上被阻止
/sys/block//queue/iosched-io调度程序可调参数
关于linux - 在Linux 2.6.x上哪里可以获得有关aio的最新信息。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3295994/