AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

Netflix 开源 bpftop:简化 eBPF 性能监控与调优流程

  • 2024-04-12
    北京
  • 本文字数:1014 字

    阅读完需:约 3 分钟

大小:497.65K时长:02:49
Netflix开源bpftop:简化eBPF性能监控与调优流程

Netflix 最近宣布推出 bpftop,一个旨在增强 eBPF 程序优化和监控的命令行实用程序。bpftop 可以提供 eBPF 程序实时运行的快照,显示程序执行的平均持续时间、每秒处理的事件数以及每个程序的总 CPU 使用率的近似值等指标。有了这个工具,Netflix 就可以充分利用 eBPF 的功能。


Netflix 高级软件工程师 Jose Fernandez一篇博文中做了详细说明。bpftop 使用 BPF_ENABLE_STATS 命令从 eBPF 程序收集重要的性能数据。为了确保计算机平稳运行,数据收集默认处于关闭状态。bpftop 收集这些数据并计算有用的信息。收集的数据以类似于 top 命令的表格形式或以每 10 秒更新一次的图形形式显示。当 bpftop 停止运行时,也会停止收集统计信息。这个工具是用 Rust 编写的,并利用 libbpf-rsratatui 包来实现功能。



来源:bpftop:简化 eBPF 的性能优化


此外,bpftop 简化了提升 eBPF 程序性能的过程,便于进行基准测试、改进代码并获得即时反馈。如果没有 bpftop,优化这些程序需要涉及手动计算。而 bpftop 允许用户轻松设定基准、做出改进并确认这些改进,从而使整个过程高效进行。


这个工具的一个重要特性是它可以显示随时间变化的统计数据,这样有助于发现模式和趋势。


最开始,BPF 是 Berkeley Packet Filter 的首字母缩写。但根据 ebpf.io 的介绍,eBPF(扩展的 BPF)的能力已经不仅限于数据包过滤,所以最初的首字母缩写含义已经过时了。尽管如此,在 Linux 源代码中仍然使用 BPF 这个术语。在各种工具和文档中,BPF 和 eBPF 通常可以互换使用。如今,eBPF 在各种场景中都有应用,包括增强现代数据中心和云环境中的网络和负载均衡、提供详细的安全数据而又不会带来太大的开销,并协助开发人员跟踪应用程序,等等。


Fernandez 指出,尽管 Netflix 已经通过 VectorFlow Exporter sidecar 等工具将 eBPF 集成到了其性能工程中,但 Netflix 还希望在 eBPF 的优势和对系统的负载之间找到一个平衡点。


技术社区注意到 Netflix 工程账号在 X.com 上发布的 bpftop 公告,获得了 223 次转发和 1.2k 个赞。Hacker News 上的一篇帖子提到了技术社区的广泛参与。用户 bschuur 分享了他们在 eBPF 代码项目中使用这个工具的经验,强调了其有效性。因此,该工具被认为是足够有价值的,并被视为他们工具包的重要补充。


有关更多使用该工具的信息,请访问项目的 GitHub 页面。bpftop 采用了 Apache 2 开源许可,并欢迎社区参与贡献。


原文链接

https://www.infoq.com/news/2024/03/netflix-launches-bpftop/

2024-04-12 08:006464

评论

发布
暂无评论
发现更多内容

浅谈Java中的TCP超时

Hoswey_洪树伟

Java、

Kubernetes手记(5)- 配置清单使用

雪雷

k8s 6月日更

高性能 JavaScriptの七 -- 编程实践小技巧

空城机

JavaScript 大前端 6月日更

学妹问,学网站开发还是打 ACM?

程序员鱼皮

Java 程序员 算法 大前端 ACM

缓存穿透、缓存雪崩、缓存击穿问题与优化方案

Skysper

做通才还是专才,你会怎么选?

架构精进之路

认知提升 6月日更

Mybatis 二级缓存简单示例

Java mybatis

软件研发团队如何做好项目进度管理?

万事ONES

项目管理 研发管理 需求 ONES

加快技术应用规模化 建设世界先进水平区块链产业生态

CECBC

区块链+金融:当前区块链应用场景中最具活力的领域

CECBC

MySQL基础之六:连接查询

打工人!

myslq 6月日更

公司:离职就是一场危机管理

石云升

创业 职场经验 6月日更

不管是三胎还是App!指望“拉新”太难了,还是要靠老用户!

APP开发

Java--JVM运行流程

是老郭啊

Java JVM JVM原理

云原生推动全云开发与实践

阿里巴巴云原生

云原生

阿里云边缘容器服务、申通 IoT 云边端架构入选 2021 云边协同发展阶段性领先成果

阿里巴巴云原生

云原生

项目管理与项目集管理、项目组合管理的区别?

万事ONES

项目管理 项目 PMO ONES

Python——输入输出:加减乘除四则运算的程序

在即

6月日更

【布道API】浅谈API设计风格

devpoint

Rest API 6月日更

SpringBootApplication注解

梦倚栏杆

异构内存及其在机器学习系统的应用与优化

白玉兰开源

人工智能 机器学习 解决方案 第四范式 傲腾

spring-beans 注册 Beans(四)BeanDefinition

梦倚栏杆

你愿意被管理么?

escray

学习 极客时间 朱赟的技术管理课 6月日更

这些书都学完,绝对是编程界的大佬

看山

Java 程序员 6月日更

【Vue2.x 源码学习】第八篇 - 数组的深层劫持

Brave

源码 vue2 6月日更

5分钟速读之Rust权威指南(十九)

wzx

rust 生命周期

分布式认知工业互联网如何赋能工业企业数字化转型?

CECBC

数字化转型背景下的测试转型

BY林子

敏捷测试 测试转型

操作系统内核是什么?Linux内核又是什么?读完这篇文章,我终于知道了

奔着腾讯去

c++ 操作系统 内存管理 Linux内核 进程管理

【21-1】21 连更第一篇

耳东@Erdong

6月日更

JavaScript 中数组 sort() 方法的基本使用

编程三昧

JavaScript 大前端 数组 排序 js

Netflix开源bpftop:简化eBPF性能监控与调优流程_软件工程_Aditya Kulkarni_InfoQ精选文章