eBPF监控工具bcc系列六工具查询列表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:


关于trace,argdist,funccount三个工具已有专门篇章介绍。所有脚本位于bcc/tools文件夹中。

execsnoop跟踪新进程创建,跟踪exec函数。

bashreadline打印系统中所有bash上运行的命令,通过跟踪readline()函数实现。

biolatency跟踪块设备IO,记录IO延时分布并输出直方图。

biosnoop跟踪块设备IO,为每个IO打印一行。

biotop是块IOtop命令,查看哪些进程在使用磁盘IO.

bitesize显示各个进程的请求块大小的IO分布。

bpflist用于显示哪个BPF程序在运行,并打印打开的探针。

btrfsdist跟踪btrfs文件系统的读、写、打开和同步,并总结延时的直方图。

btrfsslower跟踪btrfs文件操作:reads,writes,opens,syncs 。衡量操作的花费时间,并打印超过阈值的信息。相比btrfsdist,这个是打印超过阈值的信息。

cachestat显示页高速缓存的命中率和丢失率,包括读写命中率

cachetopcachestat top显示功能

capable跟踪内核负责安全监测的cap_capable函数,并打印调用信息。

cobjnew调用uobjnew,uobjnew统计新对象的分配事件,并打印出分配频率、分配大小的统计信息。帮助诊断导致大量垃圾回收问题的普通分配路径。

cpudist统计任务的on-CPU事件,在被调用前花费了多少CPU.这个提供了有用的信息可以用来指导硬件采购。也可以统计off-CPU事件,就是等待磁盘IO、锁、定时器和其他挂住的情况。

cpuunclaimed函数采样CPU运行队列长度,确定是否有idlecpu.

dbslower跟踪MysqlPostgresql的查询,然后打印超出延时的,默认延时是1ms

dbstat跟踪MysqlPostgreSQL数据库进程查询,并显示查询延时的直方图。

dcsnoop跟踪目录缓存查询,用于dcstat之后的高级查询。

dcstat显示目录缓存静态统计。

deadlock_detector用于检测运行进程潜在的死锁,将uprobes绑定到pthread_mutex_lockpthread_mutex_unlock

ext4dist跟踪ext4reads,writes,opens,fsync,总结延时并得到直方图。

ext4slower显示ext4reads,writes,opens,fsync中延时超过阈值的操作。

filelife跟踪短命文件,就是那些创建后就被删除的文件,例如gcc等。

fileslower显示文件同步读和写超过阈值的操作。

filetop是文件读和写的top

funclatency计时内核函数,直到ctrl+c.例如./funclatency do_sys_open

funcslower显示内核或用户函数超过阈值。如./funcslower c:open -u 1

gethostlatency跟踪主机名查找调用,如getaddrinfo(),gethostbyname(),gethostbyname2().

hardirqs跟踪硬中断,并保存其消耗时间的统计信息。

inject通过调用链和可选的谓词集,保证指定注入模式的适当错误返回。

Javacalls会调用ucalls,ucalls统计在高级语言的方法调用,例如java,python,ruby,php和系统调用。显示最常调用的方法以及其延时。

javaflow调用uflow,uflow跟踪方法入口和退出事件,并打印流程图,类似跟踪的调试器。可以用来理解高级语言的程序流,这些高级语言提供了USDT探针。

javagc调用ugc,ugc跟踪高级语言的垃圾回收事件。

javaobjnew调用uobjnew函数,统计java新对象分配事件。

javastat会调用ustat,ustat类似top工具,用于监控高级语言的事件。

javathreads会调用uthreads,uthreads跟踪javaraw threads的进程创建事件

killsnoop跟踪kill()系统调用的信号。

llcstat跟踪缓存相关信息,如缓存miss事件。这些事件定义在uapi/linux/perf_event.h中。

mdflush跟踪md驱动层的flush的信息。

memleak跟踪内存分配和回收请求,收集每次分配的调用栈。会将调用分配后没有进行释放的打印出来。

mountsnoop跟踪mount()umount()系统调用。

mysqld_qslower跟踪Mysql的查询,并打印超过阈值延时的,默认阈值是1ms

nfsdist跟踪NFSreads,writes,opens,getattr,并输出其直方图。

nfsslower显示NFSreads,writes,opens,getattr,延时超过阈值。

nodegc通过ugc跟踪node的垃圾回收。

nodestat通过ustat显示node层的监控事件,类似top工具。

offcputime显示阻塞的调用栈,以及阻塞的事件。

offwaketime显示被阻塞的任务和内核调用栈,以及唤醒他们的线程。

oomkill跟踪linuxOOM,每个显示一行。

opensnoop跟踪系统中的open系统调用.

phpcalls会调用ucalls,总结php方法的调用情况。

phpflow调用uflow,跟踪方法的入口和退出并打印其方法流。

phpstat调用ustat,类似top工具来监视php的事件。

pidpersec显示每秒新进程创建的数量。

profileCPUprofiler,在给定时间间隔中采样堆栈.

pythoncalls调用ucallsucalls总结python的方法调用情况。

pythonflow调用uflowuflow跟踪python方法的入口和出口事件,并打印流程图。

pythongc调用ugc,ugc跟踪python的垃圾回收事件。

Pythonstat调用ustat,类似top工具监控python事件。

reset-trace可能永远用不到,如果使用kill -9杀掉bcc工具,会导致bcc工具崩溃,内核跟踪会处于半使能状态。使用reset-trace来清除跟踪状态并重置和禁止激活的跟踪。

rubycalls调用ucallsucalls总结ruby的方法调用情况。

rubyflow调用uflowuflow跟踪ruby方法的入口和出口事件,并打印流程图。

rubygc调用ugc,ugc跟踪ruby的垃圾回收事件。

rubyobjnew调用uobjnewuobjnew总结新对象分配事件,并打印分配频率。

rubystat调用ustat,类似top工具监控ruby事件。

runqlat总结调度器运行队列延时的直方图,并显示器等待时间。

runqlen总结调度器队列长度的直方图。

slabratetop显示内核中内存分配缓存(SLAB,SLUB)的使用率和总大小,类似top.

softirqs跟踪软中断,保存其统计信息。

solisten当一个程序要监听TCP连接的时候,跟踪内核调用

sslsniff跟踪OpenSSLSSL_READSSL_WRITE函数。

stackcount跟踪函数的使用频率和整个调用栈,./stackcount submit_bio

statsnoop跟踪系统的stat()系统调用。

syncsnoop跟踪内核sync的调用。

syscount总结系统或指定进程的系统调用。

tcpaccept跟踪接收tcp套接字链接(accept)的内核函数。

tcpconnect跟踪活动TCP链接(connect)的内核函数

tcpconnlat跟踪活动TCP链接,及链接延时。

tcplife总结跟踪期间打开和关闭的TCP会话。

tcpretrans跟踪TCP重发函数。

tcpstates打印TCP状态改变的信息,包括每个状态的持续时间。

tcpsubnet显示目标子网的吞吐量,只在IPv4工作。可以指定子网。

tcptop类似top功能,根据主机和端口显示吞吐量。

tcptracer跟踪TCP链接(connect,accept)和关闭的内核函数。

tplist显示内核tracepoinstUSDT探针,包括他们的格式。

ttysnoop观测ttypts设备,并打印设备上的输出。

vfscount通过跟踪vfs_开头的内核函数来记录VFS调用

vfsstat跟踪vfs调用,并输出每秒情况。

Wakeuptime衡量线程锁,显示唤醒操作线程的栈,唤醒和目标程序名字,以及总的阻塞时间。

xfsdist跟踪XFSreads,writes,opens,fsyncs,并输出直方图。

xfsslower显示XFSreads,writes,opens,fsyncs中超过阈值的操作。

zfsdist跟踪ZFSreads,writes,opens,fsyncs,并输出直方图。

zfsslower显示ZFSreads,writes,opens,fsyncs中超过阈值的操作。

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
Linux 应用服务中间件 PHP
性能工具之linux常见日志统计分析命令
通过本文的介绍,我相信同学们一定会发现 linux三剑客强大之处。在命令行中,它还能够接受,和执行外部的 AWK 程序文件,可以对文本信息进行非常复杂的处理,可以说“只有想不到的,没有它做不到的。
188 1
|
5月前
|
缓存 网络协议 Linux
玩转网络调试利器:深入剖析ip命令的强大功能
玩转网络调试利器:深入剖析ip命令的强大功能
51 2
|
缓存 监控 Ubuntu
Linux Command BCC 性能监视、网络动态跟踪工具
Linux Command BCC 性能监视、网络动态跟踪工具
|
监控 Linux 测试技术
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
217 0
|
监控 Linux 测试技术
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
145 0
|
前端开发 API C语言
eunomia-bpf 用户手册: 让 eBPF 程序的开发和部署尽可能简单
让 eBPF 程序的分发和使用像网页和 Web 服务一样自然(Make eBPF as a service): 支持在集群环境中直接通过一次请求进行分发和热更新,仅需数十 kB 的 payload, <100ms 的更新时间,和少量的 CPU 内存占用即可完成 eBPF 程序的分发、部署和更新; 不需要执行额外的编译过程,就能得到 CO-RE 的运行效率;
845 0
eunomia-bpf 用户手册: 让 eBPF 程序的开发和部署尽可能简单
|
前端开发 网络协议 Linux
问题排查利器:Linux 原生跟踪工具 Ftrace 必知必会
问题排查利器:Linux 原生跟踪工具 Ftrace 必知必会
526 0
|
监控 Linux
iostat命令安装及详解 《性能监控工具》
iostat命令安装及详解 《性能监控工具》
1135 0
|
存储 安全 前端开发
【译】eBPF 概述:第 5 部分:跟踪用户进程
【译】eBPF 概述:第 5 部分:跟踪用户进程
667 0