http://www.brendangregg.com/blog/2016-10-21/linux-efficient-profiler.html http://www.brendangregg.com/blog/2016-10-27/dtrace-for-linux-2016.html http:
转载 2017-01-04 11:31:00
120阅读
2评论
无需更改内核源代码或加载内核模块。
原创 精选 2023-06-04 11:11:11
408阅读
1. 前言我们可以使用BPF对Linux内核进行跟踪,收集我们想要的内核数据,从而对Linux中的程序进行分析和调试。与其它的跟踪技术相比,使用BPF的主要优点是几乎可以访问Linux内核和应用程序的任何信息,同时,BPF对系统性能影响很小,执行效率很高,而且开发人员不需要因为收集数据而修改程序。本文将介绍保证BPF程序安全的BPF验证器,然后以BPF程序的工具集BCC为例,分享kprobes和t
转载 2021-05-11 15:05:13
533阅读
系统都默认安装。相关介绍及安装说明可参见: Tcpdump的安装和使用。 tcpdump命令说明: tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ] [ -T 类型 ] [ -w
eBPF源于早年间的成型于 BSD 之上的传统技术 BPF(Berkeley Packet Filter)。BPF 的全称是 Berkeley Packet Filter,顾名思义,这是一个用于过滤(filter)网络报文(packet)的架构。BPF 是在 1997 年首次被引入 Linux 的,Linux 内核中的报文过滤机制其实是有自己的名字的:Linux Socket Filter,简称 ...
原创 2021-08-16 22:48:13
1019阅读
Linux内核 eBPF基础 ftrace基础:ftrace_init初始化 荣涛 2021年5月12日 本文相关注释代码:https://github.com/Rtoax/linux-5.10.13从整体架构来看,ftrace位于内核态,提供对内核函数的trace功能。图片链接:http://tinylab.org/ftrace-principle-and-practice/静态探测点,
转载 2024-01-04 19:39:54
141阅读
1. ebpf概述1.1 ebpf发展历史 BPF,及伯克利包过滤器Berkeley Packet Filter,最初构想提出于 1992 年,其目的是为了提供一种过滤包的方法,并且要避免从内核空间到用户空间的无用的数据包复制行为。它最初是由从用户空间注入到内核的一个简单的字节码构成,它在那个位置利用一个校验器进行检查 —— 以避免内核崩溃或者安全问题 —— 并附着到一个套接字上,接着在每个接收到
转载 2024-05-27 14:37:43
167阅读
欢迎来到极客重生的世界
原创 2021-07-25 14:01:19
3320阅读
1.BPF起源BPF源头起源于一篇1992年的论文,这篇论文主要提出一种新的网络数据包的过滤的框架,如下图所示。提出bpf的原因其实也很简单,早期我们从网卡中接收到很多的数据包,我们要想从中过滤出我们想要的数据包,我们需要将网卡接收的数据包都要从内核空间拷贝一份到用户空间。然后,用户程序在对这些进行过滤。那么,我们可以从中就能够发现一个问题。数据包必须全部拷贝。然后再过滤出所需的数据包,那么对于那
转载 2021-05-11 15:06:25
595阅读
一、介绍简要介绍eBPF 全称"扩展的伯克利数据包过滤器 (Extended Berkeley Packet Filter)" ,是从 BPF (Berkeley Packet Filter) 技术扩展而来的,顾名思义 BPF 技术来源于伯克利大学,最早应用于网络数据包过滤器,它比当时最先进的抓包技术快20倍。随着内核的发展,BPF 的功能随之丰富以及扩展,从最早的数据包过滤扩展到了网络、内核、安
原创 2024-03-12 09:04:46
557阅读
实现 "ebpf TOA" 的步骤和代码解释: ## 1. 了解 eBPF TOA 首先,让我们来了解一下 "ebpf TOA" 是什么。ebpf TOA 是一种使用 eBPF(Extended Berkeley Packet Filter)技术来实现的网络数据包透明传输的方法。它可以在数据包经过 Linux 内核网络协议栈的各个层级时,对数据包进行处理和修改,以实现各种网络功能。 ## 2
原创 2024-01-10 00:13:46
160阅读
1.什么是ebpf ebpf(extended berkeley package filter),中文意思扩展的伯克利包过滤器,随着ebpf不断完善和加强,现在的ebpf已经不在限于过滤网络数据包了。 2.基本原理 网上很有名的图,参考:https://cloud.tencent.com/developer/article/1970119 其实就是在用户态,将c语言程序编译成bpf字节码(使用c
原创 1月前
35阅读
EBPF 技术简介eBPF全称 extended BPF,Linux Kernel 3.15 中引入的全新设计, 是对既有BPF架构进行了全面扩展,一方面,支持了更多领域的应用,另一方面,在接口的设计以及易用性上,也有了较大的改进。eBPF 是一个基于寄存器的虚拟机,使用自定义的 64 位 RISC 指令集,能够在 Linux 内核内运行即时本地编译的 “BPF 程序”,并能访问内核功能和内存的一
原创 2023-05-06 17:50:10
504阅读
Linux内核在2022年主要发布了5.16-5.19以及6.0和6.1这几个版本,每个版本都为eBPF引入了大量的新特性。本文将对这些新特性进行一点简要的介绍,更详细的资料请参考对应的链接信息。总体而言,eBPF在内核中依然是最活跃的模块之一,它的功能特性也还在高速发展中。某种意义上说,eBPF正朝着一个完备的内核态可编程接口快速进化。 eBPF 进阶: 内核新特性进展一览 BPF kfunc
原创 2023-06-29 15:14:44
2499阅读
1 什么是 eBPFeBPF 全称 extended Berkeley Packet Filter,中文意思是 扩展的伯克利包过滤器。一般来说,要向内核添加新功能,需要修改内核源代码或者编写 内核模块 来实现。而 eBPF 允许程序在不修改内核源代码,或添加额外的内核模块情况下运行。从 eBPF 的名字看,好像是专门为过滤网络包而创造的。其实,eBPF 是从 BPF(也称为 cBPF:classi
原创 2024-03-18 08:43:00
292阅读
no space left on device 无处遁形最近在生产环境中遇到了几次创建容器报错 ”no space left o
转载 2022-11-04 09:46:25
258阅读
# 实现"ebpf kprobe"的流程及代码示例 ## 概述 在Kubernetes中,eBPF(extended Berkeley Packet Filter)是一种强大的内核技术,可以用于在不修改内核代码的情况下扩展内核功能。而KProbe是eBPF的一种类型,用于在内核函数执行时插入自定义的代码进行跟踪和监控。本文将介绍如何在Kubernetes中使用eBPF的KProbe功能。 ##
原创 2024-05-22 10:10:28
63阅读
BPF BPF 概述 BPF 最初代表伯克利包过滤器 (Berkeley Packet Filter)是基于寄存器的虚拟机运行于内核空间,能够在linux内核内
原创 2024-01-04 09:35:39
138阅读
 运行在 Android 上的难题BCC 及 BPFTrace 使用的是基于 CMake 的编译方式,与 Android 使用的 gradle,Android BP 的编译系统是不一致的BCC 项目中以 python 包为基础,那意味着需要有 python 运行环境,这在 anroid 里也是没有的可行的思路思考可行的思路,可以使用的方案如下没条件就创造条件,将 BCC&BPFT
转载 7月前
80阅读
一、背景1、grpc 在微服务中使用情况分析协议、微服务框架及eBPF采集支持状态使用热度协议Golang框架Java框架协议描述eBPF支持状态1HTTPDubbo-go、go-micro、go-zero、kratos、CloudWeGo-Kitex、Goa、Jupiter、tars-goSpringBoot, Dubbohttps://cn.dubbo.apache.org/zh/docs3-
  • 1
  • 2
  • 3
  • 4
  • 5