ring-buffer 标签归档

共 5 篇文章 · 返回首页

【PG 内核】Buffer Manager:为什么 shared_buffers 不是越大越好

拆解 PostgreSQL Buffer Manager 的核心机制:shared_buffers 的内部组织(BufferDescriptors 数组、Buffer Table hash table、buffer pool)、Clock sweep 替换算法的完整源码路径、buffer 四态状态机与 pin/unpin 协议、bgwriter 的触发条件与脏页写入策略、BAS_BULKREAD/BAS_VACUUM ring buffer 的缓存隔离机制。用 pg_buffercache 实验观察 buffer 分布和 clock sweep 行为,解释为什么 shared_buffers 超过 8-10GB 后回报递减——double buffering、checkpoint IO 尖峰和 clock sweep 扫描延迟的三重反噬。

【eBPF 内核实现深度拆解】libbpf 加载器工程:skeleton、auto-attach、map pinning 与 ring buffer 消费者

深入 libbpf 的加载生命周期:bpf_object__open() 的 ELF 解析、bpf_object__load() 的程序批量加载与 map 创建、map pinning 与跨进程复用、skeleton 自动生成器、SEC() 注解解析、auto-attach 的链路跟踪、ring_buffer__new() 的 mmap 消费者模式。

【eBPF 内核实现深度拆解】实战:构建微型 eBPF 可观测 Agent

把 01--17 的知识串成一条实践线——从 libbpf skeleton 写第一个 BPF 程序、加载到内核、用 ring buffer 回传事件、用 CO-RE 实现跨内核版本兼容、map pinning 实现热升级、配上半自动化的 verifier 错误排障流程——构建一个麻雀虽小五脏俱全的 eBPF 可观测 Agent。

【Linux 网络子系统深度拆解】net_device 与网卡驱动模型:从硬件到内核的接口契约

net_device 是 Linux 内核中一切网络设备的抽象——物理网卡、虚拟 veth、隧道设备都实现同一套接口。本文从 Linux 6.6 源码出发,拆解 net_device 的结构体布局、net_device_ops 驱动操作表、NAPI 轮询模型、多队列架构、DMA ring buffer 与中断机制。