gpt4 book ai didi

linux - 使用内核 AIO 的应用程序

转载 作者:IT王子 更新时间:2023-10-29 01:25:58 28 4
gpt4 key购买 nike

谁能告诉我一些使用内核 AIO(即 io_submit() 系列)的(最好是常用的)应用程序,例如任何 SQL/非 SQL 数据库等?我希望它能够在每个线程上发出队列深度超过 1 的异步读取,以完全饱和支持 64> 飞行中请求的高度并行 SSD,而不会出现明显的降级。

我知道 InnoDB,但我正在寻找更简单的东西(可能是 KV 存储)。

更新:我不是在寻找示例代码,或像 fio+libaio 这样的综合基准。我有兴趣找到一组可以在更真实的环境中使设备饱和的应用程序。

最佳答案

io_submit/io_getevents 的一个简单示例在 fio 中,这是一个对测试和分析 block 设备有巨大帮助的程序。它有许多不同的 I/O 后端来支持不同的操作系统和不同的访问技术。 Linux AIO 包装器位于作者在 github 上的存储库中:https://github.com/axboe/fio/blob/master/engines/libaio.c

fio 代码很简单,但缺少您可能需要的 eventfd 集成。 (我一直都有。)为此,QEMU block 层中稍微复杂但简单的代码提供了一个很好的例子:https://github.com/qemu/qemu/blob/331ac65963ab74dd84659b748affa0b111486f06/block/linux-aio.c

您可能会发现您可以通过单个线程使 SSD 饱和!或者,至少,它值得测试。 Fio 可以让您在编写代码之前很好地了解您可以期望什么样的吞吐量。您甚至可以将其配置为执行多个线程。

关于linux - 使用内核 AIO 的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37065483/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com