lighty 的生活

lighty 开发者博客

Linux AIO 与大文件

基准测试只显示了小文件(100KB)的结果。是时候将大文件加入测试池,并讨论分块大小了。

我只是把所有工作都推给内核,希望它能正确处理。
目前我允许将 64 个任务推送到内核。内核线程
比“真实”线程更轻量。

目前我正在开发一个 POSIX AIO 版本。在 Linux 上,这使用了
线程来处理 read() 操作,让我们看看效果如何。

我针对 1000 个 10MB 文件进行了第三轮基准测试。IRC 上的 tibco 正在
在中国运营一个 FLV 网站,他们说文件大小大约在 12-17MB 之间。

客户端是一台 Win2003-AMD64 双核机器,通过 Intel Pro/1000 连接到
服务器 [RAID1 … 如前所述]。


linux-aio-sendfile: 52Mbyte/s [reading 1Mbyte chunks]

avg-cpu: %user %nice %system %iowait %steal %idle
1.80 0.00 46.20 13.40 0.00 38.60

linux-aio-sendfile: 55Mbyte/s [reading 768kbyte chunks]

avg-cpu: %user %nice %system %iowait %steal %idle
2.99 0.00 56.37 4.58 0.00 36.06

linux-aio-sendfile: 58Mbyte/s [reading 512kbyte chunks]

avg-cpu: %user %nice %system %iowait %steal %idle
1.40 0.00 62.67 5.39 0.00 30.54

linux-aio-sendfile: 54Mbyte/s [reading 384kbyte chunks]

avg-cpu: %user %nice %system %iowait %steal %idle
5.18 0.00 55.38 1.99 0.00 37.45

linux-aio-sendfile: 21Mbyte/s [reading 256kbyte chunks]

avg-cpu: %user %nice %system %iowait %steal %idle
21.00 0.00 28.60 0.80 0.00 49.60


与…相比

linux-sendfile: 30Mbyte/s

avg-cpu: %user %nice %system %iowait %steal %idle
1.20 0.00 22.20 71.00 0.00 5.60

总结

无论文件大小,当你的磁盘开始受到寻道开销影响时,AIO 至少在我的配置中能为你提供 80% 的更高吞吐量。

lighttpd

请注意,我们不接受发布超过 3 个月的文章的评论!同时,请使用我们的 bug 追踪器报告 bug,并通过我们的 IRC 频道 #lighttpd@libera 进行交流。

« lighty 1.5.0 和 Linux AIO mod-proxy-core 和 SQF »