标签
本文介绍了 Jens Axboe 为 io_uring 提交的 RFC 补丁集,该方案提出在不切换上下文的情况下处理可能阻塞的操作,从而通过减少开销来提高性能。
Conviva的这篇技术博客文章描述了一个实验:在他们的Rust查询引擎中,用io_uring替换mmap后,在高并发下由于页面缓存抖动和页面错误导致性能变慢。
一项针对 Linux 6.6.79 的技术分析显示,io_uring 的 I/O 请求可以在其提交进程结束后继续存在,并在 waitpid() 返回后才完成,而原生 AIO 则会等待排空;作者建议使用独占 flock 锁作为屏障,以防止在快速失败恢复过程中出现竞态条件。
本文研究了在 Turso 数据库中 io_uring 实现预读的性能影响,表明批处理 I/O 请求可以通过合并减少设备请求来提高效率。
PostgreSQL 19 通过 io_uring 引入了内核异步读取功能,实现了直接的异步缓冲 I/O,从而在不使用专用工作进程的情况下提高性能。
Silk 是一个为 ClickHouse 设计的新栈式纤程库和调度器,通过 NUMA 感知的工作窃取、io_uring 以及热路径上的零堆分配来提升异步 I/O 性能。它适用于分布式缓存、对象存储和网络 I/O 等 I/O 密集型组件。
作者深入探讨了如何使用RDMA和io_uring饱和NIC与磁盘带宽的技术细节,着重说明了一个AI代理如何以有缺陷的解释实现了优化,随后详细介绍了实际的调试过程。
本文探讨了如何使用mmap创建魔法环形缓冲区,其中两个连续的虚拟内存区域映射同一物理内存,并测试其与io_uring注册缓冲区的兼容性,发现其按预期工作。
zeroserve 现已支持 Caddy 兼容模式,通过将 Caddyfile 进行即时编译 (JIT) 为 eBPF 和原生机器码,实现了 3 倍吞吐量和 70% 延迟降低。
本文详细介绍了在 UringMachine(一个用于异步 I/O 的 Ruby gem)中使用 io_uring 的缓冲区环实现自动缓冲区管理。它解释了缓冲区环如何通过允许内核使用应用程序提供的缓冲区来实现高效的多重读取/接收操作。
一篇技术文章,比较了通过HTTP提供文件的三种方法:同步的每个请求一个线程、基于epoll的异步I/O和io_uring,并附有C语言代码示例。
Silk 是一个面向 Linux 的开源协作式纤程调度器,具有每 CPU 调度线程、io_uring 集成和拓扑感知的工作窃取功能,专为低开销下的高并发而设计。
Zig 0.16 推出了新的 std.Io 接口,用于跨平台 I/O。zio 库通过栈式协程和操作系统级异步 API 提供了完整的异步实现,无需每个任务一个线程即可实现高效的并发任务。
Linux内核io_uring子系统中通过零拷贝接收freelist漏洞实现的本地权限提升利用。