
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
像一个"前台代收代发"。寄东西必须先把包裹搬到前台(内核),前台帮你打包、填单子,然后交给快递员(网卡)。收快递时,前台打电话(中断)通知你来取。像一个"拥有你家钥匙的无人搬运机器人"。你告诉机器人(Doorbell):“卧室衣柜里的那包衣服(MR 地址),送到对面老王家的客厅(远端 MR 地址)”。机器人有你家地址的物理地图(MTT),自己开门取货(本地 DMA),用老王给的钥匙开门(R_Key
RDMA的本质是:将网络数据传输从"CPU主导的软件流水线"转变为"硬件主导的内存直达通道"。在传统网络中,CPU是数据传输的"总指挥"——它负责协议解析、数据拷贝、路由决策等所有环节。让网卡硬件直接读写用户态应用程序的内存,完全绕过操作系统内核。RDMA技术的本质是将数据路径上的"CPU软件接力"替换为"硬件直达专线"。内存注册:让网卡直接持有用户态内存的物理地址,使数据无需经过内核中转内核旁路
在操作系统和系统编程领域,mmap是一个既基础又强大的系统调用。它看似简单——只是建立虚拟内存到物理内存的映射,但正是这个"简单"的能力,催生了共享内存IPC、零拷贝文件IO、内存数据库等众多高性能技术。本文将从mmap的本质出发,深入剖析其工作原理,并通过多个实际场景展示mmap的强大能力。mmap = 建立虚拟地址到物理地址的映射关系多个进程共享同一物理内存(IPC)用户态程序直接访问页缓存(
的模板 SQL,再通过参数绑定填充动态值,最后执行。是处理「动态参数」「二进制数据(BLOB/TEXT)」的标准方式,也是防 SQL 注入的最佳实践。MySQL 数据类型可分为「普通类型(文本 / 数值)」和「二进制大对象(BLOB)」两大类,读写逻辑的核心差异在于「数据存储形式」和「内存处理方式」。MySQL C API 提供两种核心 SQL 执行方式,分别适配「静态固定 SQL」和「动态参数
两个环,一张单:SQ 环提交任务,CQ 环返回结果。所有 I/O 操作共用同一个 SQE 结构,只是往上面填不同字段。共享内存是核心:提交和收割大部分时候不经过系统调用,这是性能优势的根源。一统异步江湖:文件、socket、定时器——用同一套 API 处理所有 I/O 类型。没有 AIO 的限制,没有 epoll 的同步读写开销。对于网络服务开发者,io_uring 是最接近"完美异步 I/O"的

sk_buff 是 Linux 内核极简高效设计的典范,它将复杂的网络协议栈封装、解封装逻辑,简化为指针的加减法运算,彻底规避了频繁内存拷贝的性能损耗。

优化点技术收益惰性 epoll_ctl缓存 cur_events,变时才 MOD消除 95%+ 的 epoll_ctl 调用紧循环 recv/sendfor(;😉 排空内核缓冲区减少 epoll_wait 唤醒次数偏移量追踪r_off + w_off 替代 memmoveO(1) 而非 O(n) 的缓冲区管理惰性压缩r_off > cap/2 时才 memmove大幅减少内存搬移频率动态超时无阻
前面两篇我们讲解了CPU 三级缓存优化CPU 分支预测优化,分别解决了内存访问延迟、指令流水线冲刷两大性能痛点。大批量重复字节扫描。RESP 协议依靠\r\n作为分隔符,无论是命令头、长度字段还是批量流水线请求,都需要反复查找该换行符。如果使用传统逐字节串行遍历,即便缓存命中率拉满、分支预测零失败,串行执行的效率上限依旧很低。本文作为系列第三篇,结合项目中AVX2 / SSE2 双指令集适配的 S

两个环,一张单:SQ 环提交任务,CQ 环返回结果。所有 I/O 操作共用同一个 SQE 结构,只是往上面填不同字段。共享内存是核心:提交和收割大部分时候不经过系统调用,这是性能优势的根源。一统异步江湖:文件、socket、定时器——用同一套 API 处理所有 I/O 类型。没有 AIO 的限制,没有 epoll 的同步读写开销。对于网络服务开发者,io_uring 是最接近"完美异步 I/O"的

两个环,一张单:SQ 环提交任务,CQ 环返回结果。所有 I/O 操作共用同一个 SQE 结构,只是往上面填不同字段。共享内存是核心:提交和收割大部分时候不经过系统调用,这是性能优势的根源。一统异步江湖:文件、socket、定时器——用同一套 API 处理所有 I/O 类型。没有 AIO 的限制,没有 epoll 的同步读写开销。对于网络服务开发者,io_uring 是最接近"完美异步 I/O"的








