ebpf_51CTO博客
一、前言不要认为是一些小的demo而忽略对它的学习,往往一个复杂的代码,复杂的工程是一个个小demo拼接成的。ebpf 网络过滤器这门技术在网络监控领域用的非常多,ebpf 编程我现在用的比较多的其实只有几个探针,kprobe、uprobe 以及linux网络过滤器。今天读了 <<Linux内核观测技术BPF>>以及linux 内核源码中的sock_user1.c sock
1. ebpf概述1.1 ebpf发展历史 BPF,及伯克利包过滤器Berkeley Packet Filter,最初构想提出于 1992 年,其目的是为了提供一种过滤包的方法,并且要避免从内核空间到用户空间的无用的数据包复制行为。它最初是由从用户空间注入到内核的一个简单的字节码构成,它在那个位置利用一个校验器进行检查 —— 以避免内核崩溃或者安全问题 —— 并附着到一个套接字上,接着在每个接收到
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
101阅读
1.BPF起源BPF源头起源于一篇1992年的论文,这篇论文主要提出一种新的网络数据包的过滤的框架,如下图所示。提出bpf的原因其实也很简单,早期我们从网卡中接收到很多的数据包,我们要想从中过滤出我们想要的数据包,我们需要将网卡接收的数据包都要从内核空间拷贝一份到用户空间。然后,用户程序在对这些进行过滤。那么,我们可以从中就能够发现一个问题。数据包必须全部拷贝。然后再过滤出所需的数据包,那么对于那
转载 2021-05-11 15:06:25
542阅读
一、介绍简要介绍eBPF 全称"扩展的伯克利数据包过滤器 (Extended Berkeley Packet Filter)" ,是从 BPF (Berkeley Packet Filter) 技术扩展而来的,顾名思义 BPF 技术来源于伯克利大学,最早应用于网络数据包过滤器,它比当时最先进的抓包技术快20倍。随着内核的发展,BPF 的功能随之丰富以及扩展,从最早的数据包过滤扩展到了网络、内核、安
原创 10月前
371阅读
实现 "ebpf TOA" 的步骤和代码解释: ## 1. 了解 eBPF TOA 首先,让我们来了解一下 "ebpf TOA" 是什么。ebpf TOA 是一种使用 eBPF(Extended Berkeley Packet Filter)技术来实现的网络数据包透明传输的方法。它可以在数据包经过 Linux 内核网络协议栈的各个层级时,对数据包进行处理和修改,以实现各种网络功能。 ## 2
原创 2024-01-10 00:13:46
57阅读
1 什么是 eBPFeBPF 全称 extended Berkeley Packet Filter,中文意思是 扩展的伯克利包过滤器。一般来说,要向内核添加新功能,需要修改内核源代码或者编写 内核模块 来实现。而 eBPF 允许程序在不修改内核源代码,或添加额外的内核模块情况下运行。从 eBPF 的名字看,好像是专门为过滤网络包而创造的。其实,eBPF 是从 BPF(也称为 cBPF:classi
原创 10月前
168阅读
# 实现"ebpf kprobe"的流程及代码示例 ## 概述 在Kubernetes中,eBPF(extended Berkeley Packet Filter)是一种强大的内核技术,可以用于在不修改内核代码的情况下扩展内核功能。而KProbe是eBPF的一种类型,用于在内核函数执行时插入自定义的代码进行跟踪和监控。本文将介绍如何在Kubernetes中使用eBPF的KProbe功能。 ##
原创 8月前
37阅读
no space left on device 无处遁形最近在生产环境中遇到了几次创建容器报错 ”no space left o
转载 2022-11-04 09:46:25
210阅读
BPF BPF 概述 BPF 最初代表伯克利包过滤器 (Berkeley Packet Filter)是基于寄存器的虚拟机运行于内核空间,能够在linux内核内
原创 2024-01-04 09:35:39
91阅读
一、背景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-
# 如何实现“pinpoint eBPF” ## 概述 Pinpoint是一个开源的应用性能监控工具,可以帮助开发者定位和解决应用程序中的性能问题。而eBPF(Extended Berkeley Packet Filter)是Linux内核中的一种特性,可以在不修改内核源码的情况下,通过加载和执行特定的eBPF程序来对系统进行深度观测和控制。 本文将介绍如何实现“pinpoint eBPF
原创 2024-01-10 01:25:32
112阅读
揭秘 BPF map 前生今世1. 前言众所周知,map 可用于内核 BPF 程序和用户应用程序之间实现双向的数据交换, 为 BPF 技术中的重要基础数据结构。在 BPF 程序中可以通过声明 struct bpf_map_def 结构完成创建,这其实带给我们一种错觉,感觉这和普通的 C 语言变量没有区别,然而事实真的是这样的吗? 事情远没有这么简单,读完本文以后相信你会有更大的惊喜。struct
# MySQL与eBPF的结合 ## 什么是eBPF eBPF(extended Berkeley Packet Filter)是一个在Linux内核中执行用户定义的代码片段的机制。它允许用户在内核中运行自定义的代码,以便在运行时扩展内核的功能。eBPF通常用于网络数据包处理、性能分析、安全监控等。 ## MySQL与eBPF的结合 MySQL是一种流行的关系型数据库管理系统,而eBPF作为一
原创 10月前
184阅读
## 使用eBPF技术监控MySQL性能 在现代软件开发中,监控是至关重要的一环。通过监控系统的性能表现,我们可以及时发现并解决潜在的问题,提高系统的稳定性和性能。而最近流行的eBPF技术为我们提供了一种全新的监控方式。本文将介绍如何使用eBPF技术监控MySQL数据库的性能。 ### 什么是eBPFeBPF(extended Berkeley Packet Filter)是一种基于内核
原创 8月前
91阅读
# EBPF Java: 科普文章 ## 引言 在计算机科学领域,扩展 Berkeley Packet Filter(eBPF)是一种强大的技术,用于在Linux内核中执行自定义的网络处理和系统监控任务。最近,eBPF技术也开始在Java开发领域受到广泛关注。本文将简要介绍eBPF和它在Java中的应用。 ## 什么是eBPF? Berkeley Packet Filter (BPF) 是
原创 2024-02-03 06:41:40
176阅读
sys_execve() 在真正的开始执行系统调用函数之前,系统调用服务程序已经将一些系统调用的函数的参数传递给了相应的寄存器,比如这里的ebx,ecx,edx都分别保存了系统调用的参数,ebx保存的是第一个参数,依次类推(当然最多传递的参数个数不能大于5个),首先这个函数通过ebx获取需要执行的文件的绝对路径,他通过这样一个函数实现 filename = getname((char _
转载 2023-08-26 21:48:01
189阅读
当今云原生世界中两个最热门的轻量级代码执行沙箱/虚拟机是 eBPF 和 WebAssembly。它
原创 2022-10-24 09:35:34
189阅读
## Cilium Socket eBPF: Enhancing Network Security and Performance In recent years, the demand for network security and performance has skyrocketed, driven by the increasing complexity and scale of mo
原创 2024-01-15 19:46:04
38阅读
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
116阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5