✦ 分类

Linux 下的文章

共 11 篇文章,慢慢看。

Linux

如何实现可动态扩展的共享内存池

开发者通常为了提高内存使用效率,或者避免内存泄漏,需要将内存池化管理。稍复杂一点的系统,一般都会有自己的内存管理机制,我在研读源码的时候,比较习惯先看内存管理模块的实现,这块很见开发者的基本工和工程思想,颇有一叶知秋之感 …

阅读全文
Linux

bpftrace 实战 - 排查内存泄漏

内存泄漏是 C 开发非常经典的问题,目前已经存在很多优秀的内存检测工具,比如强大的 Valgrind。 借助 ebpftrace 我们可以非常简单、直观的找到泄漏的位置,而且非常灵活,自己决定其中的细节。 文中我构建了一 …

阅读全文
Linux

bpftrace 入门(6) 控制语句

bpftrace 也提供了常见的流程控制语句: 条件语句 循环语句 如果你熟悉 C 或者 Java,它们看起来会相当眼熟。 条件语句 bpftrace 的条件语句与 C 语言完全一样: 当满足条件时执行 A 处语句,否则 …

阅读全文
Linux

bpftrace 入门(5) 内置函数

bpftrace 无法定义函数,但提供了约 30 个内置函数,可以在 bpftrace 脚本的任意位置调用它们。这里介绍几个最常用的内置函数,完整的列表可以参考官方文档 …

阅读全文
Linux

bpftrace 入门(4)变量

内置变量 无论 Dynamic tracing 或者 Static tracing,它们的目的都是监听特定函数调用事件,这些函数即可以在内核中,也可以在用户态的应用或者 lib 中。获知这些函数调用时的参数、返回值就已经 …

阅读全文
Linux

bpftrace 入门(2)语法

前文提到 bpftrace 的语法: bpftrace 语法深受 AWK 的影响, 前的部分相当于 AWK 的 condition, 中的部分相当于 AWK 的 action。只不过 bpftrace 执行 …

阅读全文
Linux

bpftrace 入门(1)

bpftrace 通过高度抽象的封装来使用 eBPF,大多数功能只需要寥寥几笔就可以运行起来,可以很快让我们搞清楚 eBPF 是什么样的,而暂时不关心 eBPF 复杂的内部机理。由于 bpftrace 深受 AWK 和 …

阅读全文
Linux

eBPF 快速上手

快速上手 eBPF eBPF 是一个运行在 kernel 中的虚拟机,通过它我们可以轻松的向内核各处注入一些自定义的代码(虽然受到很多限制)。如果你已经具备一定的 Linux 使用经验,那么你很有可能已经使用过 …

阅读全文