今天要给大家介绍一项不得了的新技术!

这项技术是近年来Linux 系统技术领域的一大创新,热度攀升迅速。在Linux 内核开发者圈中,甚至有人戏称

“它会替代Linux”

这项技术就是伯克利数据包过滤器,江湖人称——

BPF 技术

什么是BPF?

BPF ,全称Berkeley Packet Filter(伯克利数据包过滤器)是近年来Linux 系统技术领域一个巨大的创新。

BPF 于1992 年诞生在美国劳伦斯伯克利国家实验室(B 代表伯克利),论文 The BSD Packet Filter: A New Architecture for User-level Packet Capture 对其进行了阐述。

不过,BPF 在过去相当长的时间内都鲜为人知,原因无非是用户和应用场景少,即便在经常使用tcpdump 嗅探抓包的网络管理员中,也极少有人知道它的存在。

而今时不同往日,BPF 现在已经可以挂载到任何事件源上!其拥有一系列强大工具,这些工具好比瑞士军刀,体型虽小但非常实用,极易扩展、定制来适应不同生产环境

它也因此成为系统工程领域一项热门的新技术,拥有众多活跃的贡献者。

BPF能做什么?

精确地解释BPF 的作用比较困难,因为本身这个概念有些抽象,同时它能做到的事情也确实很多。

简单来说,BPF提供了一种在各种内核事件和应用程序事件发生时运行一段小程序的机制。而基于这样一个机制,衍生出了许多基于eBPF的工程项目,如bcc、bpftrace等等。

目前BPF 的三个主要应用领域分别是网络、安全和可观测性。

BPF作为性能分析、监视和可观测性的工具,效率十分优越,被大公司应用于生产环境,覆盖范围也开始涉及网络之外的其他领域。其中字节跳动就依托这项系统底层技术构建了全新而强大的性能分析和网络监控诊断平台。

BPF 技术作为 Linux 内核的一个关键发展节点,其重要程度不亚于虚拟化、容器、SDN 等技术。不过BPF编写起来冗杂繁琐,想要掌握并应用这项新技能免不了头发又要大把大把的脱……

那么,直接给你150多个可以立即使用的BPF工具够不够?

震撼全球的Gregg大师新作

《BPF之巅:洞悉Linux系统和应用性能》

【美】Brendan Gregg 著

孙宇聪 吕宏利 刘晓舟 译

  • 性能优化万用金典临世,再次引起全球技术海啸!

本书作者来自性能分析领域享誉全球的大神Brendan Gregg,他基于系统可观测性和性能分析开发有一系列工具,在Netflix、Facebook 等公司已进入服务器默认安装列表。

正如前文所说,这些工具就好比瑞士军刀,而本书就是瑞士军刀唯一的说明书!

▼立即获取▼

 面世即巅峰,硬核内容畅行全球

作为性能分析领域享誉全球的专家,Brendan Gregg 也是BPF项目的核心开发者,同时也是经典畅销著作《性能之巅:洞悉系统、企业与云计算》的作者。

没有人比他更适合来写这样一本利用 BPF 工具进行性能分析的书了!

书中有150多个可以立即使用的分析调试工具及其应用场景,并且提供开发自定义工具的分步指南。

其中有数十个强大的工具是专门为本书而开发,并可下载使用!

本书的另一个关注方向是 Linux 系统性能和应用程序性能的调优,学习如何分析CPU、内存、存储设备、文件系统、网络、编程语言、应用程序、容器、虚拟机管理器、安全及内核,由浅入深了解基础、进阶工具的使用,收集更有用更深入的技术信息。

 本书都有哪些使用场景?

本书可以作为一本参考手册使用,在遇到问题时参考对应的章节。书中工具仅是一个起点,当对BPF开发环境有一定了解之后,可以根据需要对现有工具进行深度定制。

此外,超多岗位/身份的同学都能从本书中得到帮助:

  • 技术爱好者可用来对系统底层调试进行深入学习

  • 系统维护者可用来了解系统瓶颈在哪里

  • 资源主管可用来提高系统的效率

  • 负责生产系统的系统管理员、站点可靠性工程师、数据库管理员、性能工程师和支持人员可用来诊断性能问题、了解资源使用情况、排除故障

  • 应用程序开发人员可使用书中工具分析并检测代码及系统事件

  • 安全工程师可用来监控事件以发现可疑行为

  • 性能监控开发者可用来在产品中添加可观测性

  • 内核开发人员可用来编写bpftrace单行程序来调试代码

  • 学习操作系统和应用程序的学生可使用BPF工具以自定义的新方式分析正在运行的系统

 强大的作者与译者

  • Brendan Gregg(布兰登.格雷格)

Netflix 高级性能工程师

Brendan Gregg 是 BPF(eBPF)的主要贡献者,他帮助开发和维护了两个主要的 BPF 前端框架,开创了 BPF 用于可观测性的先河,并创建了数十种基于 BPF 的性能分析工具。他编著的畅销书有《性能之巅:洞悉系统、企业与云计算》。

  • 孙宇聪(译者)

现任 Facebook 运维工程师经理,曾在谷歌工作多年,任谷歌高级SRE(Senior Site Reliblity Engineer),Coding.net 前技术负责人,译有《SRE:Google运维解密》《架构整洁之道》等经典畅销技术图书。

  • 吕宏利(译者)

资深SRE,现任职于谷歌基础架构部。之前曾负责谷歌搜索广告和内容广告系统运维工作,有多年分布式系统研发与运维经验。对运维工具平台建设、监控、应用性能跟踪及分析、数据化运维等方面有深入的研究。

  • 刘晓舟(译者)

毕业于北京大学计算机系,现供职于字节跳动公司系统部,任系统架构师。他在字节跳动主持构建了基于 eBPF 的大规模性能分析和网络监控诊断平台,闲暇时间也在相关开源社区提交代码。在加入字节跳动之前,他有 10 年国家部委电子政务和大数据研究经历。

最后希望本书能给想要深入了解 BPF 技术与 Linux 内核技术的你带来便利!

抽奖赠书

截止时间:2021年1月3日 17:00

如何抽奖:扫描下方二维码,关注公众号,回复关键词 :20201229 

下次你更希望我们送哪本书呢?

留言告诉我们!

赠书:“替代Linux”?!全球技术海啸来临!相关推荐

  1. 郭健: Linux进程调度技术的前世今生之“前世”

    作者简介 郭健,一名普通的内核工程师,以钻研Linux内核代码为乐,热衷于技术分享,和朋友一起创建了蜗窝科技的网站,希望能汇集有同样想法的技术人,以蜗牛的心态探讨技术. (小编画外音:郭大侠是我最佩服 ...

  2. 预测汽车级Linux专业技术的需求

    预测汽车级Linux专业技术的需求 Anticipating need for Automotive Grade Linux expertise 在听了多年汽车级Linux(AGL)及其所有潜力之后, ...

  3. MacOS开发必备工具brew,安装nginx反向代理,替代linux工具 apt-get和 yum...

    Mac os开发者必备工具 brew,替代Linux系统中的 apt-get和yum工具,本文介绍Mac电脑安装Homebrew,并下载安装软件nginx反向代理过程. 1.安装Homebrew 在苹 ...

  4. 红帽Linux故障定位技术详解与实例(1)

    红帽Linux故障定位技术详解与实例(1) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍 ...

  5. 红帽Linux故障定位技术详解与实例(3)

    红帽Linux故障定位技术详解与实例(3) 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种 ...

  6. 腾讯云再登 KVM 开源贡献榜,Linux 虚拟化技术将走向何方?

    KVM (基于内核的虚拟机,全称 Kernel-based Virtual Machine), 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 和 ...

  7. Linux编程技术总结

    前言 所谓Linux编程技术就是在Linux操作系统环境下进行软件开发时所使用的各种编程技术. 一 常见的Linux系统发行版 在介绍常见的 Linux 系统版本之前,首先需要区分 Linux 系统内 ...

  8. Linux网络技术管理及进程管理(week2_day4)--技术流ken...

    Linux网络技术管理及进程管理(week2_day4)--技术流ken OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统 ...

  9. 十年磨一剑,剑指IT技术之巅,WOT 全球技术创新大会 2022盛大开启

    新技术不断涌现,时代随之变迁,各种错综复杂的环境,也在深刻影响着全球技术革命与产业变革.新形势下,如何部署IT产业新思路?如何构建IT产业新的生态体系?如何让最新技术更广泛地辐射到实体产业中去?作为I ...

最新文章

  1. UI+UE+UX+区别
  2. 10周带你手推机器学习算法公式,30+视频为你讲解Sklearn库应用
  3. WPF使用Webbrowser操作网页的主要代码
  4. C++ 枚举类型的思考
  5. sql记录去重(SQL查询或者删除表中重复记录)
  6. 八选一数据选择器(两种写法)
  7. 数据结构 c语言 试卷,数据结构(C语言)试卷(1)
  8. JavaScript打造很酷的图片放大效果实例代码
  9. 天池竞赛-金融风控-task1
  10. 哈工大计算机专业复试科目,哈工大 计算机科学与技术学院复试科目.doc
  11. 如何关闭QQ电脑端的“腾讯网 今日最新资讯推荐”弹窗(2018年2月)
  12. suricata 命令
  13. php class 构造_PHP 类与构造函数解析
  14. 如何使用音频剪辑软件,快速剪辑任意格式音频!
  15. 扣扣邮箱的协议服务器地址,使用SMTP协议,通过QQ邮箱发送邮件
  16. 企业会计准则(具体准则)第4号——固定资产
  17. 配置远程运行后提示,/usr/bin/python: can‘t open file ‘xxxx‘: [Errno 2] No such file or directory
  18. 使用Tasker实现Android系统的短信自动发送及转发
  19. (ECCV-2022)GaitEdge:超越普通的端到端步态识别,提高实用性
  20. android Studio keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件

热门文章

  1. linux c pid获取进程名 进程名获取pid
  2. centos7 locale 区域语言设置
  3. metasploit 快速入门(二)信息收集和扫描-续
  4. VS中解决LIBCMTD.lib和uafxcwd.lib冲突(uafxcw.lib LIBCMT.lib冲突)
  5. C++中map容器的说明和使用技巧
  6. PCA--主成分分析(Principal components analysis)-最大方差解释
  7. TAP/TUN Vnet veth
  8. java安装好了打不开机_这都不犯规?王骁辉尺度把握得真好 难怪0+0+0能打20分钟...
  9. php.ini 延迟,php超时报错Maximum execution time of 120 seconds exceeded in解决办法
  10. Ubuntu18.4 中 eBPF bcc环境搭建