使用Go进行io_uring的动手实践

作者:秃头大哥出处:https://studygolang.com/articles/31360在Linux中,系统调用(syscalls)是一切的核心。 它们是应用程序与内核交互的主要接口。 因此,至关重要的是它们要快。

一篇文章带你读懂 io_uring 的接口与实现

io_uring 是 Linux 提供的一个异步 I/O 接口。io_uring 内部通过 io-wq 执行 Buffered I/O 操作,和直接在用户态调用 syscall 在本质上没有太大区别,只能减小用户态内核态切换的开销。

Monoio:基于 io-uring 的高性能 Rust Runtime

Monoio 是字节跳动服务框架组开源的基于 io-uring 的 thread-per-core 模型高性能 Rust Runtime,旨在为高性能网络中间件等场景提供必要的运行时。并且通过语言内置的异步抽象,支持了 async + await 的异步编程模式。

从经典网络IO模型到新异步IO框架io_uring

网络IO模型网络IO涉及用户空间和内核空间,一般会经历两个阶段:一阶段:等待数据准备就绪,即等待网络数据被copy到内核缓冲区(wait for data)二阶段:将数据从内核缓冲区copy到用户缓冲区(copy data from kernel to user)上述数据准备就绪