BCC
  • 2024-11-08【linux内核】 BCC Tools命令汇总
    什么是BCCTools直接通过BPF指令编写BPF程序是非常繁琐的事情,尤其对于运维人员来说,花70%的时间来编写一个BPF程序来实现一个检查点,不如花70%的时间来熟悉别人已经写好的BPF程序,并且把别人的BPF程序有效的串联起来形成自己分析问题的套路,等有了闲暇时间再去尝试突破自己,写一些现
  • 2024-10-31bcc测量函数执行时间
    获取函数的执行时间对性能分析十分有益,这里给出一个示例来测量kernel函数的执行时间。kprobe可用来在函数执行的开始加入探测点,kretprobe可以在函数返回前加入探测点,分别在这个两个探测获取时间,其差值可以作为函数的执行时间。相对ftrace,这种方式要精确很多。下面是一个例子,测量
  • 2024-09-10一文轻松搞定 tarjan 算法(二)(附带 tarjan 题单)
    完结篇:tarjan求割点、点双连通分量、割边(桥)(附40道很好的tarjan题目)。上一篇(tarjan求强连通分量,缩点,求边双)tarjan求割点还是求强联通分量的大致思路捏.算法思路:我们把图中的点分为两种:每一个联通子图搜索开始的根节点和其他点。判断是不是割点的方式如下:对于根
  • 2024-08-12CentOS7.6 安装 BCC
    根据官网的步骤安装(bcc/INSTALL.mdatmaster·iovisor/bcc(github.com)),前提是需要系统升级,gcc版本最低要5.1,所以先升级gcc。升级gcc的步骤可以参考这篇文章(Linux下GCC编译器的安装「建议收藏」-腾讯云开发者社区-腾讯云(tencent.com)),但是还是会遇到一些问题,下面列出了安装过
  • 2024-07-30基于BPF提升postgres可观测性的前提或条件
    最近看到一个新产品(dbdoctor)使用了eBPF技术,可实现对sql级别的监控,其涵盖了,cpu,内存,io,网络等,功能非常强大,目前mysql版本的已经开卖了。经过一番了解发现,该技术对于数据库的性能分析,故障排查方面很有用处。下面对了解到的内容总结一下。参考:Linux可观测性BPF&eBPF以及BCC&bpf
  • 2024-04-07bcc-tools工具之profile
    profile是用于追踪程序执行调用流程的工具,类似于perf中的-g指令相比perf-g而言,profile功能化更加细分,可以根据需要选择追踪层面,例如-U(用户要调用流程)-K(内核态调用流程)下面具体介绍该工具的使用采用profile--help,我们可以看到如下介绍:usage:profile[-h][-pPID][-U|-
  • 2024-04-025.103 BCC工具之filegone.py解读
    一,工具简介filegone 追踪文件消失的原因,无论是被删除还是被重命名。二,代码示例#!/usr/bin/pythonfrom__future__importprint_functionfrombccimportBPFimportargparsefromtimeimportstrftime#argumentsexamples="""examples:./filegone
  • 2024-04-025.102 BCC工具之filelife.py解读
    一,工具简介filelife 追踪短生命周期的文件:那些在追踪过程中被创建然后又被删除的文件。二,代码示例#!/usr/bin/envpythonfrom__future__importprint_functionfrombccimportBPFimportargparsefromtimeimportstrftime#argumentsexamples="""examples:
  • 2024-03-295.95 BCC工具之dcsnoop.py解读
    一,工具简介dcsnoop工具用于追踪目录项缓存(dcache)的查找,并可用于dcstat(8)之外的进一步调查。由于dcache查找可能很频繁,因此输出可能很冗长。默认情况下,仅显示查找失败的情况。二,代码示例#!/usr/bin/envpythonfrom__future__importprint_functionfrombccimport
  • 2024-03-295.96 BCC工具之dcstat.py解读
    一,工具简介1.1 dcache介绍dcache,即目录项缓存(DirectoryEntryCache),是Linux内核中的一个重要缓存机制。它主要用于缓存文件系统中的目录项信息,包括文件和目录的名称、位置、权限等元数据。这些元数据在文件系统中被频繁访问,因此将它们缓存在内存中可以显著提高文件访问的性
  • 2023-12-28【eBPF-02】入门:基于 BCC 框架的程序进阶
    本文是eBPF系列的第二篇文章,我们来学习eBPFBCC框架的进阶用法,对上一篇文章中的代码进行升级,动态输出进程运行时的参数情况。主要内容包括:通过kprobe挂载内核事件的eBPF程序要如何编写?通过tracepoint挂载内核事件的eBPF程序要如何编写?eBPF的程序事件类型有哪些
  • 2023-12-25【eBPF-01】初见:基于 BCC 框架的第一个 eBPF 程序
    闲言少叙,本文记录了如何零基础通过BCC框架,入门eBPF程序的开发,并实现几个简易的程序。有关eBPF的介绍,网络上的资料有很多,本文暂且先不深入讨论,后面会再出一篇文章详细分析其原理和功能。我们目前只需要知道,eBPF实际上是一种过滤器,这种过滤器几乎可以插入内核源码的任意的
  • 2023-04-07LightOJ - 1300 Odd Personality(边双连通+奇圈判定)
    题目大意:给出一张无向图,要求找出符合条件的点条件如下:从该点出发,经过一定数量的边,又回到该点,经过的边不能重复经过,且经过的边的数量为奇数解题思路:要回到原点,且不能重复经过边,只能在边双连通分量中找了接着要判断的是有多少个点,只要边双连通分量中有奇圈,那么这个连通分量中的所
  • 2023-04-07LightOJ - 1063 Ant Hills(割点)
    题目大意:求无向图中,有多少个割点解题思路:模版题了#include<cstdio>#include<cstring>#include<vector>#include<stack>usingnamespacestd;#definemax(a,b)((a)>(b)?(a):(b))#definemin(a,b)((a)<(b)?(a):(b))constintMAXNODE=10005;constintM
  • 2023-01-29bcc工具的简要学习
    摘要继续补充假期落下的内容.其实有很多知识需要学习,自己掌握的还是偏少一些.bcc的全貌#注意bcc需要较高的内核.3.10系列的内核基本不可用.argdist
  • 2023-01-27OpenEuler切换内核的方法-bcc学习后续
    OpenEuler切换内核的方法摘要昨天使用OpenEuler22.03LTS学习bcc但是一直不行.没办法切换到CentOS8还有Anolis8很容易就可以直接还是用了yuminstall-ybccke
  • 2023-01-27BPF的简单学习
    BPF的简单学习前言本来规划过年期间学习一下bpf相关的内容但是因为自己没有坚持学习,所以到最后一天才开始整理.本来想深入学习一下相关内容,但是已经感觉已经无法完
  • 2022-11-13学习笔记——双连通分量
    前言我们的神,MC曾经曰过,Tarjan是\(11\)级算法。边双桥:在一张连通无向图中,如果去掉一条边使得图的极大连通分量增加了,那么这条边就叫做桥。边双连通分量:一张无
  • 2022-10-06bcc 语法
    基本结构#导入库frombccimportBPF#使用BPF()执行bpf代码BPF(text="""#C语言代码段""")#对bpf的处理代码C语言代码编写不需要写main函数,目前知道可以写两种函
  • 2022-10-06bcc之hello world
    bcc代码——Hello,world1、简单监控clone()系统调用,将相关的信息打印出来#!/usr/bin/pythonfrombccimportBPFBPF(text="""intkprobe__sys_clone(void*ctx){ bpf
  • 2022-09-28build bcc failure with clang 10 on Ubuntu 20.04
    在ubuntu20.04的环境下,编译bcc项目,会存在undefinedreferenceto`getPollyPluginInfo()'的报错,/usr/bin/ld:/usr/lib/llvm-10/lib/libclangCodeGen.a(BackendUtil.cpp.o