作者:刘安
爱可生测试团队成员,主要负责 TXLE 开源项目相关测试任务,擅长 Python 自动化测试开发,最近醉心于 Linux 性能分析优化的相关知识。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
最近在极
客时间
上学习《Linux 性能优化实战》,接触到了基于 eBPF 的 BCC 软件包。
今天来分享一下 bcc 软件包中用来观测 MySQL 的几个工具。
1. 什么是 BPF 和 eBPF
BPF = Berkeley Packet Filter
https://en.wikipedia.org/wiki/BerkeleyPacketFilter
BPF 是类 Unix 系统上数据链路层的一种原始接口,提供原始链路层封包的收发
BPF 支持过滤数据包——用户态的进程可以提供一个过滤程序来声明它想收到哪些数据包
从 3.18 版本开始,Linux 内核提供了一种扩展的 BPF 虚拟机,被称为“extended BPF“,简称为 eBPF。它能够被用于非网络相关的功能,比如附在不同的 tracepoints 上,从而获取当前内核运行的许多信息
实际上 tcpdump 使用的 libpcap 就是基于 BPF 的。而接下来我们要介绍的基于 eBPF 的 bcc 软件包可以简单的理解为过滤内核运行信息的 "tcpdump"。
以下是一张 BPF 的工作流程图:

2. 什么是 bcc
Bcc 的开源项目:https://github.com/iovisor/bcc
eBPF 虚拟机使用的是类似于汇编语言的指令,对于程序编写来说直接使用难度非常大。bcc 提供了一个名为 bcc 的 python 库,简化了 eBPF 应用的开发过程
Bcc 收集了大量现成的 eBPF 程序可以直接拿来使用,可以通过以下工具分布图感受一下
本文介绍了如何使用BCC工具观测MySQL的查询延迟,包括dbstat和dbslower两个工具的使用方法,帮助进行数据库性能分析。BCC是一个基于eBPF的工具集合,简化了对Linux内核运行信息的观测。
最低0.47元/天 解锁文章

675

被折叠的 条评论
为什么被折叠?



