【SPDK 用户态存储】选型收束:机制排除树与系列开放问题
用机制排除树收束 SPDK 相对内核 NVMe 与 O_DIRECT+io_uring 的选型;回收阅读路径,并列出 ZNS/KV、DPU 卸载、与 Ceph OSD 用户态边界等开放问题;不做延迟排行榜。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 23 篇文章 · 返回首页
用机制排除树收束 SPDK 相对内核 NVMe 与 O_DIRECT+io_uring 的选型;回收阅读路径,并列出 ZNS/KV、DPU 卸载、与 Ceph OSD 用户态边界等开放问题;不做延迟排行榜。
探索 Linux 下一代高性能异步 I/O 接口 io_uring,从核心原理到性能对比,再到与现有网络库的集成。
从就绪通知到完成通知:梳理 epoll 与 io_uring 的架构差异、系统调用开销、适用场景,并附最小可运行 C 示例与示意图。
汇总本站 Linux 内核工程相关文章:eBPF / Cilium、io_uring、零拷贝权衡、无锁与内存屏障,以及分配器与调度实践。
sendfile/splice/io_uring 的 zero-copy 路径深度解析与实测。揭示小数据包场景下传统 copy 因 cache locality 反而更快的反直觉真相。
从机制对照 SPDK 用户态轮询栈、内核 NVMe 块路径与 O_DIRECT+io_uring;写清共置约束与迁移税,外链 storage/79 与 io_uring 系列,不做跨方案延迟排行。
io_uring 生产翻车实录:内核版本、固定缓冲、SQPOLL 与运维约束,为什么 demo 很快线上却翻车。
网络工程正处于一个技术变革的交汇点——SmartNIC/DPU 将网络处理从主机 CPU 卸载到专用硬件,CXL 打破了服务器内存的物理边界,io_uring 正在重塑内核态网络 I/O,而 Kernel Bypass 技术在追求极致性能的同时也在寻找与内核生态的平衡。本文系统分析这些趋势的技术本质、工程影响和演进方向。
深入解析 Linux io_uring 的核心机制:提交队列 (SQ)、完成队列 (CQ) 与零拷贝技术,理解它如何重塑高性能网络编程。
全方位对比 io_uring 与 epoll:从系统调用开销、内存管理到编程模型,分析 io_uring 在高性能 I/O 场景中的优势与局限。
手把手教你使用 liburing 编写第一个 io_uring 程序。详解 io_uring_queue_init, io_uring_submit 等核心 API 的使用流程。
深入网络编程,实现一个异步 TCP 服务器。学习如何使用 user_data 管理连接上下文,处理 Accept, Read, Write 链式调用。
深入探讨 io_uring 的进阶功能:SQPOLL (零系统调用)、Fixed Files (减少引用计数开销) 和 Provided Buffers (自动缓冲区管理)。
探索 Libevent 2.2+ 版本中新增的 io_uring backend。如何开启、性能表现以及当前的局限性。
并非所有场景都适合 io_uring。深入分析快路径延迟、内存隐性成本、生态复杂度等因素,帮助你做出理性的技术选型。
系统梳理 Go 集成 io_uring 的关键问题:何时值得做、CGO 与纯 Go 如何取舍、runtime.Pinner、固定缓冲区与 SQPOLL 的工程实践。
一份面向线上事故的事件驱动代码排障手册:从症状收敛、strace/eBPF/perf 逐层下钻,到 OpenTelemetry 集成与 Sanitizer 离线复盘。
系统梳理 io_uring 的线程安全模型与四种主流多线程架构模式(Thread-per-Ring、Shared Ring、Submit/Reap 分离、SQPOLL),包含完整的多线程 Echo Server 实战、NUMA 优化、性能对比与生产避坑指南。
eBPF 在内核里做决策,io_uring 在内核里做 I/O。当这两个东西连起来,你的数据包从网卡到应用可以完全不经过传统协议栈。
特定场景下精心调优的 io_uring 可以超过通用 nginx。我们用 fixed buffers、registered files、SQPOLL 把每个请求的系统调用从 6 个降到 0 个,然后用 wrk 正面 PK。
io_uring 一定比 epoll 快?跑五个场景的实测数据告诉你:某些情况下 epoll 还是赢的。用数据打自己的脸。
拿仓库里现成的 io_uring echo server 做基线,一行一行往 Rust 翻。记录编译器拦下来的五个瞬间——每一个都对应 C 版本里一个真实的 crash 或泄漏风险。Rust 的价值不在更快,在更难把雷带到线上。
深度解析C10K到C10M问题的演进,涵盖从select/poll到epoll、io_uring的I/O模型变革,Reactor与Proactor模式的实现,事件驱动架构,内核旁路技术(DPDK),以及Go/Erlang的M:N调度模型,全面剖析现代高并发网络编程的理论本质与工程实践。