分类 system 中的文章

BPF 程序与信号交互大揭秘

本文地址 : https://www.ebpf.top/post/how-ebpf-interacts-signals 原文:Signaling from within: how eBPF interacts with signals 1. 背景 2. 动机 3. 场景:拦截 openat(2) 4. 内核如何处理 SIGKILL 信号? 5. 什么信号要后置处理 6. 通过 BPF程序触发 SIGKILL 7. 自愿信号检查 8. open & write 操作竞争(Racing) 9. 其他影响 10. 结论 本文探讨了 eBPF 程序生成的 UNIX 信号的一些语义。 1. 背景 信号自 1971 年 UNIX 第一版问世以来就一直……

阅读全文

什么等等? I/O Wait ≠ I/O 瓶颈?

本文地址:https://www.ebpf.top/post/cpu_io_wait 1. I/O Wait 定义 2. 测试验证 3. 进一步明确磁盘吞吐和读写频繁进程 4. 内核 CPU 统计实现分析 5. 总结 参考资料 1. I/O Wait 定义 I/O Wait 是针对单个 CPU 的性能指标,表示当 CPU 分发队列(在睡眠态)里有线程被阻塞在磁盘 I/O 上时消耗的空闲时间。……

阅读全文

一道思考题所引起动态跟踪 ‘学案’

本文地址:https://www.ebpf.top/post/ftrace_kernel_dynamic 1. 基础知识 1.1 默认编译 1.2 使用 -pg 选项 1.3 使用 -pg 和 -mfentry 选项 1.4 对内核进行验证 2. ftrace 中 kprobe 跟踪机制验证 3. 使用内核模块进行验证 3.1 使用 kallsyms_lookup_name 方式获取 3.2 直接使用内核函数地址(踩坑笔记,可跳过) 4. 使用 gdb + qemu……

阅读全文

Ubuntu 21.10 安装调试符号

本文地址:https://www.ebpf.top/post/ubuntu-21-10-dbgsym 1. 背景 2. 手动搜索下载安装 3. 使用第三方源安装 步骤 1:GPG 秘钥导入 步骤 2:添加仓库配置 步骤 3:更新安装包 步骤 4:安装调试符号包 步骤 5: 验证符号包已经成功安装 4. 源码安装及关联 5. 最终调测……

阅读全文

基于 Ubuntu 21.04 BPF 开发环境全攻略

本文地址:https://www.ebpf.top/post/ubuntu_2104_bpf_env 1. 系统安装 1.1 Vagrant Vagrant 是一款用于构建及配置虚拟开发环境的软件,基于 Ruby,主要以命令行的方式运行。Vagrant 由 HashiCorp 官方出品,相信提到大名鼎鼎的 HashiCorp 公司,大家还能够联想到著名的安全密码存……

阅读全文

VirtualBox VM 空间瘦身记(vmdk)

本文地址:https://www.ebpf.top/post/shrink_vbox_vmdk_size 在使用 VirtualBox( VMDK 模式)管理虚拟机的时候,我们经常会遇到一些编译安装场景(比如编译 Linux 内核),会导致磁盘空间急剧膨胀,但是在编译完成后即使我们删除了相关的文件,在 VM 虚……

阅读全文

Ubuntu 20.04 Kdump + Crash 初体验

1. Kdump 工作原理介绍 内核崩溃转储指的是在内核异常情况时,将 RAM 中部分内容进行转储到磁盘或者其他存储中。当内核发生 panic 时,内核依靠 kexec 机制在预先保留的内存区域快速重启一个新的内核实例,预留内存区域大小可通过内核启动参数 crashkernel 指定。 为了实现 “双内核” 布局,Kdump 在内核崩溃后立即使用 kexec 引导到转储……

阅读全文

来来,让我看看你究竟在干什么?

1. 系统的线程栈跟踪(内核) 在某些特殊场景中,我们可能会遇到偶发系统内核 CPU 抖动,这时候我们可能需要知晓动时刻内核中的所有运行任务的一个快照,这种场景下 sysrq 可以完全满足我们的需求。 如果只是需要分析系统的热点路径,perf 会是一个比较好的选择。 1.1 sysrq 是什么? sysrq 代表的是 Magic System Request Key。开启了该……

阅读全文

Linux 进程管理

本文是技术团队内部分享的版本,目的是通过进程管理及调度器历史对于 Linux 进程管理的演进过程起到一个总览的作用,完整的 PDF 可以在这里 下载。水平有限,本文内容仅供参考,有错误欢迎指正。 1. 基础知识 进程类型 实时进程 非实时进程 CPU 资源占用类型 CPU 消耗性 (CPU-Bound) I/O 消耗性 (IO-Bound)……

阅读全文