[BPF] 第001篇 使用 eBPF 监控 Linux 内核内存分配 2月前 评论
[BPF] 第001篇 使用 eBPF 监控 Linux 内核内存分配

深入探索eBPF技术,该方案通过非侵入式方式在Linux内核中高效运行自定义字节码,实现对kmalloc内存分配的实时监控,兼具安全性和灵活性。文章详细展示了内核态插桩与用户态应用的协同原理与代码实践,支持多维过滤和实用输出,适合于系统性能分析及生产环境部署,为内核行为追踪和资源优化提供了极具价值的案例

linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理 2024-11-20 评论
linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理

围绕内核中的 kmalloc、vmalloc 和用户态 malloc 三种内存分配方式,从实现路径和底层机制进行对比分析。kmalloc 基于 slab 分配器,从各类 slab 缓冲区中按 size 选择合适 cache,通过 kmem_cache_alloc_trace/slab_alloc 分配物理上连续的内存,适合小块、频繁分配的场景。 vmalloc 则在 vmalloc 区域临时申请 vm_struct,计算所需页数后为其分配 struct page* 数组,再通过 alloc_pages_node 逐页(或成组)分配物理页,最后用 vmap_pages_range 建立虚拟地址