我试了一下,部署了 golang 的程序,不需要手动在代码中开启 profile ,就能获取 profile 数据,太强了,有大佬知道怎么实现的吗?
1
0o0O0o0O0o 2024-03-01 14:15:05 +08:00 via iPhone
答案就在标题中
|
![]() |
2
Kumo31 2024-03-01 14:24:07 +08:00 ![]() eBPF 可以通过 uprobe 来对用户态函数插桩,如果装了 bpftrace ,可以用下面的命令来查看某个进程中支持的函数
bpftrace -l 'uprobe:/proc/<pid>/exe:*' |
3
hexler 2024-03-01 14:25:42 +08:00
二楼正解
|
4
qq135449773 2024-03-01 14:52:25 +08:00
这东西掉性能吗,大概掉多少?
|
![]() |
5
PTLin 2024-03-01 15:32:28 +08:00 ![]() @qq135449773 那要看监控的事件是什么以及 bpf 程序写的是不是合理了,tracepoint 和 kprobe 一般都是一百纳秒以内,并且触发次数不是太频繁可以忽略不记,假如是上面用户空间的 uprobe 的话那开销就大了。
|
6
hancai 2024-03-01 15:35:49 +08:00 ![]() @qq135449773 之前想在 k8s 里面弄个 ebpf 的监控,用了一下 deepflow , 节点性能损失大约 10%
|
7
qq135449773 2024-03-01 16:17:07 +08:00
|
8
securityCoding 2024-03-01 17:36:09 +08:00
不是有关键字了吗,ebpf 今年非常火
|