网易首页 > 网易号 > 正文 申请入驻

eBPF 技术详解:不修改内核也能监控系统运行

0
分享至

做运维或者搞后端的同学,大概率都遇到过这种尴尬:线上服务出问题了,你想看看内核里到底发生了什么,结果发现——看不到。内核就像个黑盒,你只能在外围猜。

以前想窥探内核,路子就那么几条:改内核源码重新编译,风险大得吓人;或者装个内核模块,一不留神就把系统搞崩。直到 eBPF 出现,这事儿才算是有了正经解法。

eBPF 到底是啥

全称 extended Berkeley Packet Filter,扩展的伯克利包过滤器。名字听着绕,其实它最早就是 BPF——贝尔实验室搞出来的一个抓网络包的工具。那时候的 BPF 很单纯,只能过滤网络数据包。但后来内核社区那帮人把它扩展了一下,能力一下子就打开了:网络监控、安全过滤、性能分析、虚拟化,什么都能掺一脚。2014 年随着 Linux 3.18 首次亮相,想完整用上它,内核至少得 4.4 以上。

说白了,eBPF 干的事就是:让你在不修改内核代码、不加载内核模块的前提下,把一段自己写的逻辑塞进内核里跑。

它是怎么做到的

讲道理,这套流程设计得相当精巧。你写一段 C 代码,用 Clang/LLVM 编译成字节码,然后通过系统调用把这段字节码加载进内核。注意,内核不是傻子,不会你给什么它就跑什么——它先得过一道叫 Verifier 的安全检查,确认你的代码不会干坏事(比如乱访问内存、随便调系统调用),通过了才放行。最后再经过 JIT 编译,把字节码转成机器指令,执行效率直接拉满。

代码进去了,总得有个触发时机吧?这就是 hook(钩子)的作用。eBPF 程序可以挂在内核的各种事件上:系统调用、函数进出、网络数据包到达、kprobes/uprobes 探针……事件一发生,你的程序就被调用。

还有个关键组件叫 eBPF Maps,本质就是个键值存储,让 eBPF 程序在多次调用之间保持状态,还能跟用户态的程序共享数据。你统计的数据就是靠它传出来的。



实战:几十行代码监控内核

光说不练假把式。现在最流行的工具链是 BCC(BPF Compiler Collection),它的玩法很有意思——在 Python 里嵌一段 C 代码,BCC 帮你编译、加载、挂载,一气呵成。

比如你想统计系统每秒发出去多少 TCP 包,核心逻辑其实就十几行:定义一个 BPF_HASH 当计数器,在这个函数上挂个探针,每次调用就加一。跑起来之后,控制台每秒打印一次计数。

tcp_sendmsg

再进阶一点,还能算 TCP 发包的耗时:发送时记录时间戳存进 Map,接收时取出来一减,延迟就出来了。这段代码我当年调试了三个多小时,各种诡异的坑——结构体忘初始化、类型不匹配、头文件缺引用……所以个人建议,能用现成的就别自己造轮子。



BCC 自带的工具其实已经够用了:execsnoop 监控进程执行、opensnoop 监控文件打开、tcptop 看 TCP 流量排行、profile 分析 CPU 占用……内核里发生什么事,基本一览无余。

我个人觉得,eBPF 是近几年 Linux 生态里最值得学的技术之一,现在火得一塌糊涂的云原生网络方案 Cilium,底层就是它。K8s 集群里的网络排查、服务网格、安全观测,到处都有它的身影。门槛确实有——得懂点底层系统知识,还得会写代码——但一旦上手,你等于给内核装了个透视镜。

你在项目里用过 eBPF 吗?或者踩过什么坑?评论区聊聊。

声明:内容由AI生成

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
马杜罗以享有豁免权为由要求美方撤销指控

马杜罗以享有豁免权为由要求美方撤销指控

界面新闻
2026-09-03 09:31:56
“起飞前,一乘客要下机,飞机直接开回航站楼”,航司:两次延误均非公司原因,没有补偿

“起飞前,一乘客要下机,飞机直接开回航站楼”,航司:两次延误均非公司原因,没有补偿

南方都市报
2026-09-03 07:53:17
建议你一定养一个:顶嘴、拖拉、爱发脾气的孩子,长大真的有好处

建议你一定养一个:顶嘴、拖拉、爱发脾气的孩子,长大真的有好处

另子维爱读史
2026-09-02 20:03:11
星巴克的对手,七年亏了30亿

星巴克的对手,七年亏了30亿

中国新闻周刊
2026-09-03 10:59:06
景甜背后的金主之谜!时间回到15年前,王思聪早已道出事实

景甜背后的金主之谜!时间回到15年前,王思聪早已道出事实

文刀贰
2026-08-28 04:10:03
一针没打的280万人,2026年身体真相曝光

一针没打的280万人,2026年身体真相曝光

华庭讲美食
2026-08-26 01:21:08
梅西退役,“新梅西”终于等来千载良机!32岁,还能踢一届世界杯

梅西退役,“新梅西”终于等来千载良机!32岁,还能踢一届世界杯

体育世界
2026-09-02 12:39:14
毛主席建国后有“三不踏”的说法:不回延安、不进故宫、不登泰山

毛主席建国后有“三不踏”的说法:不回延安、不进故宫、不登泰山

纪史行者
2026-09-03 01:20:03
“养条狗都比你强!”老公主在雨中崩溃痛哭,评论区里没有一点同情!

“养条狗都比你强!”老公主在雨中崩溃痛哭,评论区里没有一点同情!

林林先生
2026-09-03 11:14:07
直到今天美国才发现,当年冻结俄罗斯3000亿外汇,竟成了本世纪最臭的一步棋

直到今天美国才发现,当年冻结俄罗斯3000亿外汇,竟成了本世纪最臭的一步棋

坠入二次元的海洋
2026-09-02 09:20:36
挨了印度毒打,又拿了美国5亿,中国想帮忙,尼泊尔就是接不住!

挨了印度毒打,又拿了美国5亿,中国想帮忙,尼泊尔就是接不住!

墨兰史书
2026-09-03 13:20:13
威少下岗再就业!融资50亿组建新联赛,抢NBA饭碗,李梦也会参加

威少下岗再就业!融资50亿组建新联赛,抢NBA饭碗,李梦也会参加

你的篮球频道
2026-09-03 10:23:36
25岁日本男星电车内性侵高二女生被捕,称“犯案动机纯粹是为了满足自己”

25岁日本男星电车内性侵高二女生被捕,称“犯案动机纯粹是为了满足自己”

韩小娱
2026-09-01 18:38:55
外网账号"黑人在中国"273期约会视频曝光:女生买单、进家门、被偷拍,13.8万老外围观"战绩"

外网账号"黑人在中国"273期约会视频曝光:女生买单、进家门、被偷拍,13.8万老外围观"战绩"

杭城村叔
2026-09-03 13:13:30
今晚开播!央一 26 集年代家庭剧来袭,主演阵容强,这剧收视要爆

今晚开播!央一 26 集年代家庭剧来袭,主演阵容强,这剧收视要爆

小嵩
2026-09-03 09:57:27
“纽约,请为布云朝克特欢呼!”

“纽约,请为布云朝克特欢呼!”

卡门的杂货铺
2026-09-03 09:19:35
一瓶“甲硝唑”几块钱,竟还能摆平这4种病?医生:别白白错过了

一瓶“甲硝唑”几块钱,竟还能摆平这4种病?医生:别白白错过了

看世界的人
2026-08-27 21:57:40
丈夫彩票中800万,次日妻子带彩票一起消失不见后,丈夫却笑出声

丈夫彩票中800万,次日妻子带彩票一起消失不见后,丈夫却笑出声

温情邮局
2025-03-25 09:54:15
由于露西亚 多名女性禁止男友游玩《GTA6》

由于露西亚 多名女性禁止男友游玩《GTA6》

3DM游戏
2026-09-01 08:20:05
9月3日消息!河南2026退休养老金上调通知正式公布了吗?一次讲透

9月3日消息!河南2026退休养老金上调通知正式公布了吗?一次讲透

李博世财经
2026-09-03 09:58:05
2026-09-03 13:59:00
千纸鹤安安
千纸鹤安安
大自然的搬运工
106文章数 3关注度
往期回顾 全部

科技要闻

大模型扎堆!谷歌刚发,Meta就跟上

头条要闻

尼泊尔父亲山洪后借钱徒步找19岁儿子:他肯定能跑掉

头条要闻

尼泊尔父亲山洪后借钱徒步找19岁儿子:他肯定能跑掉

体育要闻

小卡回应处罚:不知晓任何规避工资帽意图

娱乐要闻

德云社停更20天再营业!

财经要闻

再见了,期房!商品房预售制卒于2026

汽车要闻

实拍捷途旅行者7 风格更潮/混动版配上华为乾崑ADS 5

态度原创

手机
时尚
艺术
健康
军事航空

手机要闻

W34:华为一枝独秀,苹果重回前五

“卡普里裤”今年秋天又流行回来了,这样穿时髦又显高!

艺术要闻

马岩松MAD新作:舞蹈之家的“玻璃裙摆”

脑梗能否取栓,关键看这几点!

军事要闻

乌特工内战街头对射 互认对方为"俄特工"

无障碍浏览 进入关怀版