在哪里可以获取有关 Linux 2.6.x 上 aio 的最新信息

发布于 2024-09-10 16:55:08 字数 175 浏览 7 评论 0原文

最近我正在学习如何编写一个高性能的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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

超可爱的懒熊 2024-09-17 16:55:08

我正在研究同一领域。

你甚至可以让 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 时观察几个地方:

  1. /proc/meminfo - 查看脏页趋势
  2. echo 1 > > /proc/sys/vm/block_dump 并观察 syslog,您将看到谁在进行写入以及何时
  3. sar -dp 1 - 查看您的设备是否以 100% 的利用率使用
  4. cd /proc;猫*/状态| grep State - 查看谁在磁盘
  5. /sys/block//queue/iosched 上被阻止 - 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:

  1. /proc/meminfo - see dirty pages trends
  2. echo 1 > /proc/sys/vm/block_dump and watch syslog, you'll see who's doing the writing and when
  3. sar -dp 1 - see if your devices are being utilized at 100%
  4. cd /proc; cat */status | grep State - see who's blocked on disk
  5. /sys/block//queue/iosched - io scheduler tunables
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文